home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
cad
/
lasi512b.zip
/
LASI51.LHI
< prev
next >
Wrap
Text File
|
1996-04-04
|
209KB
|
4,966 lines
≡≡
Basic Information
Introduction
LASI (LAyout System for Individuals(ists))
(Pronounced "LAZY")
Version 5.1.2
LASI is a DOS based CAD system consisting of a main drawing program and a
number of utility programs. The original but fairly limited version of
LASI was written several years ago for the author's own professional use
to do IC and semiconductor device layout on a personal computer. Since
then, LASI has been completely rewritten, taking advantage of new
hardware and software. With many improvements and the addition of several
new utility programs, LASI has become a fairly complete design package
with the features:
■ Drawings made with LASI can be converted to and from Calma Stream
Format (GDS or GDSII).
■ Drawings can be converted to and from and Caltech Intermediate Format
(CIF).
■ Drawings can be imported reasonably well from AutoCAD (DXF).
■ Design rule checking can be done using 2-dimensional bitmap logical
operations between drawing layers.
■ SPICE circuit analysis files can be compiled from schematic or layout
drawings for schematic capture or actual IC simulation.
■ Plots, accurate prints and hardcopies can be made using plotting
utility programs. The programs can either drive a printer or plotter
directly or generate files. The formats available are:
Hewlett-Packards's HP-GL (plotters)
Hewlett-Packards's PCL (laser/DeskJet)
Epson's ESC/P (dot matrix and inkjet)
ZSoft's PCX (Windows, PaintBrush, Word Processors, etc.)
Although written for DOS, LASI will run under Windows 3.1, Windows 95, or
OS/2 or any operating system that has support for DOS programs that use
extended (XMS) memory. LASI has its own graphics and is not dependent on
the operating system's graphical user interface. LASI is more or less
written to operate on common hardware and not to conform to any current
operating system.
In addition to IC layout, LASI can be used for hybrids, printed circuit
boards, schematic diagrams and other precision drawing applications.
Since its general distribution as a form of shareware, LASI has become
particularly valuable to students, universities, small businesses or
anyone who doesn't have the funding for more elaborate drawing systems.
LASI is a good basic CAD system that can be used to teach design
techniques. Anyone learning on LASI can go on to more elaborate systems.
If a more elaborate system is in use, LASI can still be a supplemental
system that lets time-consuming tasks be done on a PC and then be
transferred to the bigger system.
LASI is intended to be friendly and intuitively obvious, which makes it
easy to learn and operate by occasional users. Once the basics are
understood, the commands usually require little additional explanation.
Most commands operate on the drawing globally, so that there are no
special editing procedures for different parts of a drawing. There are no
hierarchical command structures with pull down menus. All commands are
essentially random access through menus at the side of the display and
may be easily aborted.
Information is usually entered by mouse or keyboard. When a command is
executed, the program is so designed that the results are displayed as
soon as possible, to give good operator interaction.
LASI's construction is fairly modular and is designed for programming
simplicity. Some procedures or command sequences may appear somewhat
primitive to someone experienced with other CAD systems. Because of its
structure however, LASI usually can be modified easily, and new features
and commands can always be added. This allows good ideas from users to be
incorporated into future versions of LASI.
LASI is intended to be propagated by software alone. The programs are
constantly being updated with improvements and new features. A printed
manual would soon be outdated and would add an expense that would require
charging everyone for LASI. There is therefore no printed manual. The
LASI Help and Information program, LHI.EXE, displays the documentation,
and individual topics can be printed if desired. If a printed manual is
needed, a program MANUAL.EXE is supplied that prints a manual complete
with index from any LASI help file.
You should read the remaining Basic Information topics. After that, you
can work your way through the General Information topics.
If you are in a hurry to run LASI, it is recommended that you read the
General Information/Hardware topic to see if your PC is capable of
running LASI adequately, and then go to the Quick Start topic.
If you are new to LASI you should run the tutorial IC layout. By working
with a simple layout, you will get a good idea of how LASI works.
If you have been using LASI version 4.X, you MUST read the Converting
Versions topic. You should also read What's New, to see what changes have
been made since the last release.
What's New
There have been many small changes and some large changes to LASI in
version 5.1. These are some of the main changes from previous 5.0.7:
Version 5.1.0
-------------
■ LASI version 5.1 has an improved memory manager that works directly to
an operating system's XMS memory manager services. This eliminates
Microsoft's somewhat quirky virtual memory functions that were used in
LASI 5.0. The resulting code is 10KB-13KB smaller and works more
elegantly and probably faster. Also eliminated is EMS support, since
anyone running LASI on a 386 or better has XMS through HIMEM.SYS,
Windows or one of the memory managers (QEMM, etc.).
■ There is a new command VSTP which makes it easier to work with
polygons, since it lets you "walk" an active vertex along a polygon.
■ There is also a new DPTH command that limits the depth to which cells
are drawn fully. This should be very useful if drawings contain cells
nested several levels deep, because it both speeds redraws and makes
drawings clearer.
----------------------------------------------------------------------
Note: When you first run 5.1 on a 5.0 drawing, the depth will be 0 and
all cells will be drawn as dotted outlines. Reset the level with the
DPTH command, after which the level will be retained correctly.
----------------------------------------------------------------------
■ Changing path width and end types (inline or extended end) is now much
easier because if you change the width, the position of the end faces
of the path is always preserved.
■ The pan (arrows) and XPND commands now have vernier functions when the
ALT key is pressed.
■ Function keys on the utility programs have been replaced by mouse
buttons or ALT-key inputs. The utility parameter editor now works much
like the editor used in Windows - so as not to confuse people who
normally run Windows.
■ There is a new utility program FLATTLC.EXE that smashes nested TLC
files into a single flat TLC file, or generates a set of flattened TLC
files for the LASICKT SPICE compiler.
■ The MANUAL.EXE manual printing program now prints the correct page
numbers in the index on long files. It also has had several new
features added.
■ The plotting programs have been modified so that the orientation of the
viewed drawing window and the plotting (printing) on the paper are the
same, that is, plotting is now done normally in "portrait" orientation.
Drawings can optionally be rotated 90 deg. The previous method of
plotting which rotated a drawing into "landscape" orientation confused
even the author.
■ The hardcopy programs have also been modified so that shifting of the
print on the paper is more intuitive.
■ The action of the command buttons in Cell Mode has been improved so
that windowing commands abort more logically.
Version 5.1.1
-------------
■ The converters GDS2TLC.EXE and CIF2TLC.EXE now have an algorithm that
determines the coarsest LASI grid needed to convert GDS or CIF without
distorting coordinates positions.
■ The converters TLC2GDS.EXE and TLC2CIF.EXE now check if the GDS or CIF
grid being used converts points from the LASI grid without distorting
coordinates positions.
■ The Snap command now snaps coordinates to the NEAREST snap grid
correctly.
■ Closed text polygons now can be filled just like any other closed
polygon object. In previous releases of LASI text never filled.
■ New text font file TFF2.DBD is included which draws solid filled
characters instead of the line characters of font file TFF.DBD.
■ Text is now proportionally spaced and the text character spacing ratio
is slightly different. You will probably have to change the Text
Spacing Ratio. Read the SET command topic.
■ The form file variable "text=" has been changed to "font=". However,
"text=" will still work. Also, new keyword "misc=" has been added to
the form file that sets various disparate parameters. Read General
Information/Form File for details..
■ The plotting programs ESCPLOT.EXE, PCLPLOT.EXE and PCXPLOT.EXE have
been condensed into a single plotting program PRNPLOT.EXE that can plot
in any of the 3 individual formats.
■ The status display of the LASIDRC.EXE program has been changed to a
graphical display of the area of an IC currently be checked.
■ A new little program NETCOMP.EXE has been added the compares SPICE
network lists generated by LASICKT.EXE. This should help when doing
schematic to layout checking.
■ The left mouse button, not the right button, now activates menu
commands. Originally, the action of the left button was not restricted
to the drawing area. Now that it is, the left button can be used for
the menu. Most people seem to prefer to select commands and do
graphical operations with left button. This conforms to most other
drawing programs, particularly Windows programs. The right button still
aborts drawing, changes pages and flips the menu. If you still want to
use the right button, you can set it in the form file by adding the
parameter "misc=rmb" to that file.
Version 5.1.2
-------------
■ The cursor control fuctions have been revised so that the cursor always
shows the exact location and actions that will be done. Unless on
buttons, the left mouse button inputs coordinates even if the cursor is
off the drawing area.
■ The toggle switches in the the upper right of the display have become
actual buttons. This is a prelude to utility call buttons to be added
in version 5.2.
Installing LASI
The following information outlines the installation procedures for
installing LASI on any PC. If you are reading this, you probably have
done most of the installation already. The information is given here so
that you can verify that installation has been done correctly.
LASI will be ready to run with just the basic installation. When you are
more familiar with LASI's workings you can do the advanced installation.
Installation from Floppy Disk
-----------------------------
The LASI files are distributed in compressed form. The distribution disk
can be either a high-density 5.25" or 3.5" floppy disk.
The files on the floppy disk usually will be ZIP compressed into a file
LASI51?.ZIP, where "?" represents the revision number. Also included on
the disk will be Info-ZIP's UNZIP.EXE or a program that uses portions of
code from that program, and a program INSTALL.EXE.
Run the installation program INSTALL.EXE. INSTALL should work with
whatever form the LASI files have been supplied and will do the
following:
1. INSTALL will determine the floppy drive that you are using and will
ask for the hard disk drive where you want LASI to install. it will
create a subdirectory named \LASI5 on your hard disk, if it has not
yet been created.
2. INSTALL will then ask if you want different blocks of files to be
installed. If set to "Y" it will create any subdirectories and extract
the files. The ICON and TUTOR files should be installed. The CHARS
files are small LASI drawings of the text characters that can be used
to customize your text characters. Installing the character files is
optional because there are about 200 of them. You can extract them one
at a time from the ZIP file if you want.
3. INSTALL will ask if you want any custom files that may be on the
floppy disk to be installed. Certain customized editions of LASI may
have additional files distributed with the standard LASI files.
4. INSTALL will ask if you want to run the tutorial after the
installation. This will be done automatically if you say "Y".
5. INSTALL will modify your AUTOEXEC.BAT file in the hard disk root
directory by adding the directory "\LASI5" to the DOS PATH variable.
You will find "PATH=\LASI5;%PATH%" added at then end of the file. Just
erase this if you want to undo this change.
6. INSTALL will automatically write "SET LASIDRIVE=drive:" at the end of
your AUTOEXEC.BAT file, where "drive" is the logical hard disk drive
where you have installed LASI.
Installation from Networked Files
---------------------------------
If downloaded from the Internet or other network or bulletin board, the
files should be in a single ZIP file LASI51?.ZIP, or two ZIP files
LASI51?A.ZIP and LASI51?B.ZIP, where "?" is the revision number.
Each ZIP will have a !README.TXT file, containing basic installation
instructions. You should supply your own PKUNZIP 2.0 or other unZIP
program.
The files are listed in the System Contents help topic. If for some
reason you obtain LASI as individual files, you should check to see if
you have a complete set of files. All files should have the SAME DATE AND
TIME to insure compatibility.
This is from the !README.TXT file found within the main ZIP files. It is
repeated here for convenience.
1. Create a directory named "\LASI5" on your hard disk under the root
directory.
2. Copy the ZIP file LASI51?.ZIP, or the files LASI51?A.ZIP and
LASI51?B.ZIP into the \LASI5 subdirectory. Using PKUNZIP 2.0 or
similar program, uncompress the files.
3. Create the subdirectories "\LASI5\TUTOR", "\LASI5\ICONS" and
"\LASI5\CHARS" in the \LASI directory.
4. Using PKUNZIP or similar program, uncompress the files TUTOR.ZIP,
ICONS.ZIP and CHARS.ZIP in their respective subdirectories.
Uncompressing the CHARS.ZIP file is optional because there are about
200 small files in the ZIP file.
!!! DO NOT UNCOMPRESS THESE FILES IN THE \LASI5 DIRECTORY !!!
5. Add the path "drive:\LASI5" to DOS using the DOS PATH command, where
"drive" is the hard disk's logical drive letter. You should add this
to the PATH variable in your AUTOEXEC.BAT file.
6. Add the DOS environment variable "LASIDRIVE=drive:" to the
AUTOEXEC.BAT file, where "drive" is the logical drive letter of the
hard disk where LASI is installed. For example, if on C: hard disk, it
should read "SET LASIDRIVE=C:" in your AUTOEXEC.BAT. If you have only
one hard disk you can omit the variable and it will default to the
current drive.
7. Reboot so that the modified AUTOEXEC.BAT will take effect.
Quick Start
If you are eager to try out LASI here is what to do:
1. Install a mouse and its driver software if you haven't already.
You must have an working mouse to operate LASI. If you start LASI
without a mouse, It should exit; if not press CTRL-END.
2. Install the LASI files by either method described above.
3. Be sure that "drive:\LASI5" is in your DOS PATH variable and that
"LASIDRIVE=drive:" has been set as a DOS environment variable, where
"drive:" is the logical drive where LASI files have been installed.
You can check by just typing "SET" on the DOS command line.
4. Create a "drawing directory" on the hard disk where you installed the
system files and make that directory your default directory.
!!! DO NOT MAKE DRAWINGS IN THE \LASI5 DIRECTORY !!!
5. Copy the FORM.DBD file from the \LASI5 directory to the drawing
directory. LASI will exit if it does not find that file.
The FORM.DBD distributed with the system files is a "generic" version
and should work with most hardware.
6. Run LASI by simply typing "lasi".
The main drawing program should come up in "System Mode". You can get
help in general by pressing F1, or you can get help on any command by
putting the MOUSE CURSOR on a MENU BUTTON and then pressing F1.
You are now free to experiment on your own!
Converting Versions
Version 4.X to Version 5.1
--------------------------
The internal drawing files of version 4 (BP4 and CL4) are incompatible
with version 5.0 or 5.1, mainly because of the 16-bit (short) integers
stored in them. These files have been renamed with the extensions BP5 and
CL5, so that there will be no accidental conflicts that can destroy a
drawing.
LASI 5.1 is furnished with a conversion program 4TO5.EXE. To make a
version 4 into a version 5 drawing simply make the drawing directory the
default directory and run 4TO5.EXE. New files will be written and the old
files will be left unchanged.
If a version 4 BP4 file is very large, 4TO5.EXE may run out of space. Use
TLCIN.EXE to convert if this happens. TLCIN.EXE can read version 4 TLC
files and convert them to version 5.1.
TLCOUT.EXE can be used to convert in reverse from version 5.1 to version
4, except that if the dimensional data exceeds 16-bit limits (+/-32767)
it will overflow version 4.
The CELLS4.DBD file of version 4 is compatible with version 5.1. The
reverse is not true, mainly because version 5.1 may contain 32-bit
integers. The 4TO5.EXE program writes a new file named CELLS5.DBD.
The CONSTS4.DBD file of version 4 is totally incompatible with version
5.1, and should not be copied from old version 4 drawings. When you run
LASI 5.1, a new file named CONSTS5.DBD will be written.
The TFF.DBD and FORM.DBD files are compatible. The FORM.DBD file has some
new additions that are explained under General Information/Form File and
General Information/Layer Names.
Terms of Distribution
The LASI system files can be freely copied and distributed by anyone.
LASI is distributed by floppy disk, or can be downloaded from sites on
the Internet, other networks, CD-ROMs or bulletin boards.
Floppy Disk Distribution
------------------------
If distributed on floppy disk, the original disk, although copyrighted,
should be directly duplicated using DISKCOPY.COM or other program.
The disk should contain a decompression program UNZIP.EXE from the Info-
ZIP group or a program that uses portions of code from that program. This
program can be freely distributed with LASI as long as the following
notice is included in this help file:
The installation program INSTALL.EXE uses Info-ZIP's UNZIP.EXE or
portions of its source code to decompress files. Info-ZIP's software
(ZIP, UNZIP and related utilities) is free and can be obtained as
source code or executables from various bulletin board services and
anonymous-ftp sites, including CompuServe's IBMPRO forum and
ftp.uu.net:/pub/archiving/zip. The source code or executables can also
be obtained free of charge from the author of LASI.
Network Distribution
--------------------
Any university or technical school that maintains an Internet site for
CAD or IC development software, is encouraged to help distribute LASI.
Because it is non-commercial and therefore not advertised, LASI has a
chronic visibility problem, and distribution sites are always welcome.
LASI system files are normally compressed for networks in one or two ZIP
files. ZIP is the preferred format for network distribution. The ZIP file
compression standard, maintained by PKWare,Inc., is public domain; the
compression software from PKWare (PKZIP, PKUNZIP, etc.) is not, and is
therefore not distributed with LASI.
If LASI is to be placed on a network, the author should be contacted for
the latest ZIP version of the system files. Also, the author should be
informed of the network address and to whom updates can be sent. LASI has
been found all over the world, mostly in duplicates or old versions.
Making a Distribution Floppy
----------------------------
If you received LASI as only one or more ZIP files from a network, you
can make an installable floppy by doing the following:
1. Unzip only the program INSTALL.EXE from the ZIP files. Copy this
program to an empty 1.44MB floppy.
2. Copy the one or more ZIP files to the floppy. INSTALL will look for
all files with the name LASI51*.ZIP.
3. Copy PKUNZIP.EXE, PKUNJR.EXE or Info-ZIP's UNZIP.EXE to the floppy.
Note that PKUNZIP.EXE and PKUNJR.EXE may be used for personal use, but
may not be freely distributed (particularly commercially) without
PKWare's permission.
The INSTALL program is smart enough to look for multiple ZIP files, any
of the unzippers listed above, and certain additional custom files that
might have been included on the original disk.
Distribution Rules
------------------
■ Files in a system distribution should NOT be MODIFIED. The files are
usually configured to work with each other in that particular release.
■ Files should NOT be distributed INDIVIDUALLY. Most programs are
intended to work with other files in the same distribution. The help
files are a good example of this.
■ If extracted and recompressed, which is highly discouraged, the DATES
AND TIMES OF THE FILES MUST NOT BE CHANGED. This is the way that
different revisions are kept orderly. Notice that the time stamp on a
file is actually its release number.
■ Any custom files to be distributed with LASI MUST be included on a
floppy disk or network SEPERATELY. DO NOT put any additional files into
the set of LASI system files.
Finally, a person distributing LASI is allowed to charge a fee that will
cover their distribution costs (labor, floppy, packing, postage, etc.).
Any fees are ultimately left to the spirit of LASI as being free for
personal and educational use.
Terms of Licensing
The LASI System has been written for the author's own professional use in
making integrated circuits, and therefore was not intended as profit-
making software.
For this reason, LASI is NOT SHAREWARE in the usual sense; that is,
everybody is expected to pay if they use the software. LASI is FREE for
NON-PROFIT applications by individuals or organizations. There are no
copying or installation protections in LASI. It does have the author's
copyright notice encrypted into it, so that no one can sell it for their
own profit.
However, if LASI is used to OBVIOUSLY MAKE A PROFIT, then a VOLUNTARY
license fee PER COMPUTER on which it is installed is requested. The
license fee is $99 for the first computer and discounts rapidly with each
additional installation. To determine the license fee for a number of
computers, run the FORPRFIT.EXE program included with LASI. This license
is for a period of ONE YEAR and should be made payable to the author.
When LASI is licensed, FREE UPDATES including any NEW PROGRAMS will be
provided during the license period, and will continue to be provided if
the license is renewed.
This fee is not just to ease the conscience of someone making a profit
and using LASI for free, but helps to pay for improving LASI with new
hardware and software and sending out updates. The fee is not expected to
be a compensation for the endless hours of coding and debugging that have
gone into producing LASI.
Terms of Liability
The LASI System is constantly being revised and is distributed on an
"as is" basis. Since the programs are quite complicated, software bugs
may be found, often when someone does something that only rarely would be
done. IF YOU THINK YOU HAVE FOUND A REAL BUG, REPORT IT TO THE AUTHOR.
The bug hopefully will be fixed, and YOU WILL RECEIVE A CORRECTED VERSION
AT NO CHARGE.
Neither the author nor any person distributing the LASI System assumes
any responsibility for whomever uses the programs or for how the programs
are used. Also, neither the author nor any person distributing the
software assumes any liability for any losses monetary or otherwise
incurred related to the use of the programs.
Getting Updates
Unlike commercial software which is usually frozen, bugs and all, LASI
gets updated often. Experience has shown that LASI is significantly
updated every few months, or sooner if the situation requires it. If you
have a version more than a year old, it is almost certainly out of date.
Licensed users will receive free updates during their license period.
Beyond the license period updates generally will have to be requested.
Anyone using LASI can get a FREE update directly from the author. The
author maintains a database of know users, but it is impossible to send
updates to everyone unless requested.
Anyone who got LASI from other sources should be kept updated by those
who gave them the software. Updating secondary users is a responsibility
that should be taken seriously.
LASI is available on the Internet at a number of sites, mainly at
technical universities who maintain a repository for CAD or IC design
software. The list of sites can change frequently, as Internet changes
continuously. When doing a search look for "LASI" under topics such as
"CAD" or "VLSI".
As a general rule, to be sure that you have the most recent software,
contact the author directly, by fax or phone.
Final Comments
With the proper software, personal computers have easily become adequate
for small to medium sized IC layout applications. LASI can give everyone
a personal computer based work station. This is particularly true for
students learning IC technology. In fact, it was (and is) the intention
of the author to eventually develop LASI as a complete educational
software system for use in IC design courses.
Although it may be used that purpose, LASI was not really intended for
doing routine IC or ASIC design. Instead, LASI was developed as a
"fundamental" drawing system, which can generate arbitrary shapes that
might be needed in any kind of application, new or old.
LASI was also intended for people who think in a particular spatial way,
as anyone working with it will soon realize. Using LASI develops spatial
thinking.
LASI was really intended to put some fun and relaxation into doing layout
tasks by allowing a person to work when and where they want, and
therefore, it is believed, do better more creative work.
Unlike commercial software, that may be designed by closed committee,
LASI receives feedback from its users. Since LASI is rather democratic
(within limits), people are encouraged to contribute ideas of their own,
or, even better, to write programs for themselves that expand LASI's
applications. Contact the author with your ideas or suggestions.
Author of LASI:
Dr. David E. Boyce
IC Technology Consultant
68 Bergdorf Rd.
Parish, NY 13131, USA
Fax/Phone: 315-625-7291
General Information
About LASI Programs
For anyone interested in the technical side of LASI, here are a few
details:
LASI is written to be primarily DOS compatible. It has its own
independent graphics system (presently in 80386 assembly) and is not
dependent on the class libraries of Windows or other GUI. Its graphics
are hardware (VESA VGA) dependent, but are rewritable if some other
hardware standard needs to be supported.
LASI 5.1 has a memory manager that keeps track of all the different types
of data being moved in and out and around memory. It uses standard well
documented XMS (not EMS) function calls. XMS is supported under DOS in
HIMEM.SYS and under Windows enhanced mode in WIN386.EXE.
Although the LASI uses mostly integer math, some fast floating-point math
is used during the drawing process. For this reason, the main drawing
program is compiled in two different versions:
For use with a coprocessor, the source code is compiled with inline
coprocessor instructions, making LASI587.EXE.
For use without a coprocessor, the source code is compiled with
software floating-point math function calls, making LASI5A.EXE.
To start LASI you actually run the small stub program LASI.EXE. This
program determines if there is a coprocessor present, and then writes
over itself with LASI587.EXE or LASI5A.EXE. Eventually LASI5A.EXE may be
dropped, since fewer and fewer PC's in the future will not have
coprocessor support.
The main drawing program is written in C and assembly language. The
source code consists of four separate modules:
The main(), System Mode command and utility functions (C)
The Cell Mode command functions (C)
The drawing, file and hardware functions (C)
The elementary graphic functions (Assembly)
The C modules are complied using Microsoft C/C++ in the large model, and
the assembly is compiled using Microsoft Macro Assembler 6.11. The four
object codes are linked together to build the main drawing program.
The utility programs are also written using C/C++. These usually have a
standard text mode 80x25 16 color user interface, with occasional graphic
mode usage. A few utility programs have been compiled to need a 386 or
higher because they do quite a bit of integer computation. All utility
programs are compiled using software floating-point or emulated
coprocessor math function calls; they will all run the same with or
without a coprocessor.
Advanced Installation
Once you have mastered getting LASI up and running and probably know what
you are doing, you can "customize" LASI to your particular hardware or
drawing style. To do this, you can load certain operating system drivers
(if not already in use) or set certain parameters in the FORM.DBD file as
follows:
■ To use extended memory (XMS) you need to have DOS's HIMEM.SYS installed
in your CONFIG.SYS file. Version 3 or newer is recommended because
earlier versions have some bugs. LASI will detect XMS and will give you
all the memory it can find. If you wish to load drivers into high
memory (always), or if you have programs that use EMS, you also need
EMM386.EXE loaded. If you use QEMM-386 or 386MAX for memory management,
these should provide XMS or EMS capability, and LASI should work
properly.
■ If you have an appropriate line printer or plotter, set the FORM.DBD
file's "hcopy=" and "plot=" parameters to allow hard copies and plots
to be made. Use EDLIN.COM or MS-DOS 5 or 6's EDIT to change the
FORM.DBD file to prevent any word processor formatting characters from
being inserted into the FORM.DBD file. Read the General Information/
Form File topic and the HCPY command topic.
■ If your hard disk is not very fast, install SMARTDRV (from MS-DOS or
Windows) or a RAM drive by putting the driver into your CONFIG.SYS
file. If you use a RAM drive, turn on the RAM drive provision by
setting the "ramdrive=" parameter in the FORM.DBD file to the letter of
the RAM drive. Read the General Information/Using RAM Drive topic.
■ Once you have been using LASI for some time you will have some favorite
commands that you use often. You can write these into the FORM.DBD file
under the "fkey=" keyword, and further customize LASI to your own way
of working. Read the General Information/Key Assignment topic.
■ If you are using a fairly standard layout using named layers, you might
want to add "layer=" keywords to the FORM.DBD file. This will give you
the convenience of referring to different layers by name, not by
number. Read the General Information/Layer Table topic.
Attached Cells
A cell that is kept in a common cell POOL that is shared among several
drawings is called an ATTACHED cell. The attached cell will be draw
normally, but will follow certain rules and will have some special
properties:
■ Attached cells are protected and may NOT be changed using Cell Mode.
■ Attached cells must have the same physical scaling as the drawing.
■ Attached cells must fit within the memory available for allocation by
the memory manager for boxes, paths and vertices.
■ Attached cells may NOT be renamed with the RENAME command.
■ Attached cells are searched for in the pool directory only, while
normal cells are searched for in the drawing directory only. If a cell
file (BP5) is not found, a "null" cell is drawn. LASI draws a null cell
as a dotted outline. A null cell is different from a cell that has
nothing in it, in that, there is no BP5 file for a null cell.
■ Attached cells may be added to the drawing directory in two ways:
You can use the System Mode IMPORT command and give the imported cell
the SAME NAME. This copies the cell's BP5 file to the drawing directory
and turns the attached cell into a normal cell.
You can use the IMPORT command and give the copied cell a NEW NAME.
This is preferred if you are going to modify the cell and use it in a
few places.
■ Attached cells may be smashed using the SMSH command. This effectively
adds an attached cell's boxes, paths and text to the current cell.
■ Attached cells may be used in the MAKE command. They will be added to
the new cell as would any other cell, but they will still be attached
cells.
■ The commands OUTL, FULL, INFO and SHOW work on attached cells.
■ If you are using a RAM drive, the first time you draw a attached cell
it will be copied to the RAM drive. It will still remain protected but
will draw faster.
■ Attached cell names appear in red in the LIST command cell listing.
Cells with rank greater than 1 may be attached, but only the boxes, poly
and paths will be drawn and the cell will be forced to rank 1. The reason
for this is that LASI uses pointers to cells in its cell placement data.
These pointers would be different for different drawings. The TLCIN.EXE
program must be used to install any cells containing other cells. It is
usual that cells containing other cells are drawing specific and would
not be shared with other drawings anyway.
Archiving
It is highly recommended that you keep current backups or archives of
your drawings. You should use the TLC external data format. The TLC
format is written in ASCII text, and is very forgiving. It may in fact be
written or repaired using a text editor.
To dump a complete drawing you only need to run TLCOUT.EXE in a drawing
directory, or alternately, to dump only a certain cell, give it the name
of the that cell and TLCOUT.EXE will make all the required cells. Backup
TLC files may be written directly to a floppy disk if they will all fit,
or they can be written to a hard disk and then to one or more floppy
disks.
Once TLC files are made, a complete drawing or individual cells can be
reconstructed if necessary.
It might be said that TLC is the true way of storing LASI drawings. The
internal data files (BP5 and CL5 files) are really a convenience to
reduce the startup time for LASI.
Read the TLC Conversion topic.
Backups
LASI is designed with a lot of protection against drawing loss. It will
write your latest drawing files to your hard disk at certain times so
that if the computer is turned off or fails, or you simply make a mistake
or change your mind, your drawing will be mostly or totally recoverable.
Whenever you exit Cell Mode all files are updated on the hard disk. This
includes the BP5 and CL5 files for the particular cell and the CELLS5.DBD
and CONSTS5.DBD files.
There are two files CELLBKUP.BP5, CELLBKUP.CL5 that store your cell as it
was when you enter Cell Mode. These may be used to return a cell to the
same state that it was when you entered Cell Mode by copying them to the
cell's BP5 and CL5 files.
Also, there are two files SORTBKUP.BP5 and SORTBKUP.CL5 that are updated
when you use the SORT command. You may use these files to restore if you
make a major mistake. These files are also updated by a timed automatic
backup that protects your drawing even if you leave it unattended for a
while and someone comes by and turns off the computer.
Finally, there are two files DSSBKUP.BP5 and DSSBKUP.CL5 that are updated
whenever you use the DEL, SNAP or the SMSH command. You may recover from
an accidental delete, snap or smash by using the UNDO command.
Important: If you have a disaster, the LAST cell you were working on will
be in these files. Simply copy the most current files to internal files
with the cell's name and the .BP5 and .CL5 extensions. DO NOT RESTART
LASI AND GOTO CELL MODE OR THE BACKUP FILES WILL BE REWRITTEN.
Boxes/Paths/Cells
A drawing is built of things called OBJECTS. In a drawing objects are
placed in a hierarchy, the position of an object in this hierarchy is
called its RANK.
The lowest rank (0) objects are the basic constructions, BOXES, PATHS,
POLYGONS and TEXT.
There are 64 layers available for boxes, paths and text, numbered 1-64.
The higher rank (1-15) objects are the CELLS, which are the basic
structures of a drawing. Any cell can contain one or more objects of
lesser rank.
All the cells in a drawing are called the CELL COLLECTION.
Boxes
-----
Boxes are simple objects that have the properties of four sides, each
orthogonal to the adjacent, and a layer. Only the position of the sides
and the layer may be changed.
Paths
-----
Paths are a set of vertices in some order which display as a set of
endwise merged rectangles, all with the same width, but usually different
lengths.
A path with a zero width is called a polygon (poly for short).
A polygon is special case of a path, and the term "path" can be used to
refer to either, except in the case where a zero width path is explicitly
indicated.
A polygon need not be closed. A line of zero width however usually does
not reproduce anything useful in an integrated circuit, so polygons will
usually be closed intentionally.
Vertices may have their position changed, and the vertices of a path may
be added or deleted. The width or layer of the path may be changed.
Paths with a POSITIVE width are drawn with their ends INLINE with their
end vertices, while paths with NEGATIVE widths are drawn with their ends
EXTENDED out half the width from the vertices.
Paths with extended ends should be used if the layout is to be converted
to CIF. The TLC2CIF converter program will however change the end type of
necessary.
Paths with either end type can be used if conversion will be to GDS,
since GDS has a path end attribute.
A path with width can have no more than 250 vertices. A polygon can have
no more than 500 vertices.
Text
----
Text is a form of path. Instead of displaying vertices, it displays as a
string of text characters. Text is stored as a special path, and many of
the commands that affect paths work on text objects. Text can have a
layer and a size which corresponds to a normal path's width. A single
text object can have up to 40 characters.
Cells
-----
All drawing is done within a cell. A cell has a NAME by which it is
called for drawing or for insertion into other cells. The name must be
acceptable as a DOS filename, since cell files will be made using that
name. A cell is named when it is created, but it may be renamed. A rank
is also assigned when a cell is created, which later can be changed.
The LASI drawing program uses cell ranking to organize drawings so that
computer memory usage is better controlled and reentrant constructions
(i.e. cells nested in themselves, directly or indirectly) are avoided.
In general, the overall layout drawing will be the highest ranking cell.
There however may be many cells of that rank, for perhaps different
versions of the same integrated circuit.
Cells have a property known as AREA. The area of a cell is the region
within the rectangle that fully encloses all the objects that make up the
cell. A cell's OUTLINE is the perimeter of the area, or simply the
enclosing rectangle. Cells may be drawn in full, or may be drawn as only
their outline. Cells in a part of a drawing that is not currently being
worked on may be outlined to improve clarity and to speed up redrawing.
When a cell is drawn as its outline it may be manipulated with certain
restrictions as though it was drawn fully. Read the CGET, CPUT, CMOV,
OUTL and FULL command topics.
Cells may also have their IMAGE turned on. Drawing of cell images can be
toggled by the I key. A cell's image is just its outline that is drawn in
addition to any boxes, paths, or other cells. However, the cell is still
normal cell. All the commands that work on normal cells work on a cell
with its image displayed. A cell image is independent of which layers (if
any) are viewed, and shows exactly where a cell's area is located.
Command Menus
Most operations are done by selecting a command from a menu on the side
of the screen. Placing the mouse cursor on a button depresses the button.
Clicking the LEFT (or RIGHT) mouse button activates the command.
In Cell Mode there are two different menus. To flip between them, simply
click the RIGHT mouse button.
In Cell Mode the current resident command is shown at the bottom left of
the screen.
The colors usually mean something. Generally the cyan commands affect
boxes, paths and text, the yellow affect cells, and the green both, with
many exceptions. Commands intended to stand out are generally red. Some
commands are colored just to look pretty or give good contrast.
Command Types
The commands that are found on the menus do many things. The commands all
have help topics in Command Information.
The System Mode commands either operate immediately or request additional
information to be typed in. The commands may be aborted or continued to
completion.
Cell Mode commands may be grouped into four types:
■ RESIDENT commands are commands that stay in place until you change to
another resident command. There is always a default resident command
when working on a drawing.
Examples of resident commands are: ADD, GET, PUT, CGET and CPY.
■ ONE-TIME (or ONCE) commands are commands that abort any other commands
that may be in progress, but are not retained.
Examples of ONE-TIME commands are: SORT, FILL, LAYR, and OBJ.
■ WINDOW commands are commands that change the window or some parameter
of the display. These commands are nestable within a resident command.
For example, you can reposition the window an unlimited number of times
while you still have the second point of a MOV pending. The command
listed at the bottom of the display changes color to tell you that you
are in a nested command that is asking for an input.
The window commands are: ARROWS, CNTR, DGRD, DRAW, FIT, GRID, OPEN,
RDRW, VIEW, WGRD, RSTR, SAVE, XPND and ZOOM.
■ DOS commands are commands that run other programs with LASI as the
shell. These commands can cause "out of memory" or "not available"
errors if you don't have enough RAM available.
The DOS commands are: DOS, HCPY, PLOT, TLCIN, TLCOUT and help F1.
In System Mode, information is requested at the left of the screen. In
Cell Mode information is usually requested on the last line. Any default
values will be retained by pressing ENTER or ESC.
Usually, ENTER continues the command and ESC aborts the command.
Important: Any command that is expecting a cursor input point can be
cancelled by selecting the same command, a new command or by pressing
ESC. Window commands can be cancelled within a resident command without
cancelling the resident command.
Common Problems
When LASI is started it checks for the FORM.DBD file, the CONSTS5.DBD
file, the CELLS5.DBD file and the text font file (usually TFF.DBD). It
also checks the hardware for the mouse and the kind of video adapter you
have. If there is a problem LASI should tell you. This may not be perfect
and if you crash first suspect the CONSTS5.DBD file. It may be incorrect.
Simply erase it from your drawing directory. LASI will make a new one.
CONSTS5.DBD files made with older versions of LASI are not guaranteed to
work with newer versions of LASI.
If you have installed LASI on one hard disk, but are making drawings in
drawing directories on another disk, LASI may not be able to find
programs and data unless the DOS environment variable "LASIDRIVE=drive:"
has been set to the logical disk drive where LASI is installed.
If you crash or you get a "Not Available" message, when running programs
such as TLCIN.EXE, TLCOUT.EXE or PGLPLOT.EXE with the LASI drawing
program as the shell, you probably have run out of conventional memory.
LASI checks memory, and refuses to execute if it thinks that there is too
little available, but it is not perfect because it really doesn't know
how much memory a program needs. DOS eventually determines this.
The LASI System is a very complex and evolving system. It is possible
that situations will occur with different hardware and software
environments that will cause difficulties. Once authentic problems are
reported they are usually fixed. Consult the author or your source of
this software for the latest version.
Drawing Display
When operating in Cell Mode the drawing area occupies most of the screen.
The command menu appears on the right of the screen, and status
information is displayed on the top and bottom of the screen.
≡≡15
┌─ Cell(Rank)──── Information ────────────────────────┬─────────┐
├─ View(layers)── Open(layers)───── Toggle Buttons ───┤ │
│ │ │
│ │ │
│ │ │
│ │ │
│ Drawing Area │ Menu │
│ │ Area │
│ │ │
│ │ │
│ │ │
├─ Command (point) ──── Cursor Position ──────────────┤ │
└─ wGrd ─── dGrd ─── Obj ─── Layr ─── Wdth/Size ──────┴─────────┘
(Input and Messages)
The UPPER TOP LINE shows the NAME of the CELL and its RANK on the left.
Near the center is an area where information is displayed that remains
until some status is changed.
The LOWER TOP LINE shows the layers that are viewed and opened, or if the
Layer Table is being used. At the right, are the TOGGLE BUTTONS for
alternate grid (A), path center line (C), distance marker (D), cell image
(I), cell outline name (N), the octagonal mode (O), the origin reference
(R) and the text reference (T) toggles. Read General Information/Toggle
Buttons, Key Assignment and the OUTL, DRAW and TEXT commands.
The UPPER BOTTOM LINE shows the name of the current COMMAND and the point
to be inputted. Commands usually display in CYAN, but nested "window"
commands display in RED.
The upper bottom line also shows the current POSITION of the mouse
cursor. The lowercase "w" or "u" prefixing X or Y indicates that the
cursor is in the "working" or the "unit" grid.
The LOWER BOTTOM LINE normally displays the working and dotted grids, the
name or type of object that will be added with the ADD or TEXT command,
the layer if the object is a box, path or text, and the width or size of
a path or text.
The lower bottom line also serves as an input line for keyboard inputs
and direct X and Y coordinate inputs.
The bottom line displays temporary messages and certain warning messages
that may be sent to indicate a problem, for example, "RAM Drive Full or
Unavailable ...", which can occur quite often.
Drawing Speed
On a fairly slow computer, drawing a large number of cells can take a
considerable amount of time. LASI has several features to allow you to
work on larger drawings more effectively. These are as follows:
■ Pressing the ESC key or clicking the RIGHT mouse button causes a
drawing sequence to abort in two stages. The first stage forces cells
to be drawn as dotted outlines. The second stops the present cell's
boxes and paths from being drawn.
You don't have to redraw fully if you only want to locate a certain
area. Just find where the area is, abort further drawing, and then use
the ZOOM command.
Likewise, you don't have to redraw fully if using the pan arrows. Just
click the mouse two or three times on the pan arrow button with the
right rhythm.
■ Cells may be replaced by their outline, which draws almost instantly.
Read the OUTL and FULL command topics.
■ Cells that are too small to draw are drawn as their outline (dotted).
This is NOT the same as putting the cell in outline, as listed above.
■ Objects that are too small to draw may be skipped by setting the
resolution properly. Read the SET command topic.
■ Objects that are out of a drawing window are remembered and are skipped
for certain commands.
■ The cell files may be automatically transferred to a RAM drive. Read
the General Information/Using RAM Drive topic.
■ Finally, the new DPTH command can be used to limit the expansion of
nested cells as they are being draw. Read the DPTH topic.
Note: If you speed up drawing using first method, active box sides and
active vertices are still drawn or marked, and active cells are still
drawn as filled outlines. This is to indicate where an active object is
located.
Hint: If you do not use a RAM drive or a disk cache such as SMARTDRV, run
a disk organizing program such as OPTIMIZER (COMPRESS) from PC Tools,
SPEEDISK from Norton Utilities or DEFRAG from MS-DOS 6 on your hard
disk frequently. If cell files become badly fragmented, the drawing
time for LASI can become incredibly long.
Drawing Universe
The drawing area is 16,777,214 units wide since positions are determined
by a 32-bit integer. This is 256 times larger than LASI version 4. This
may not make sense for 32-bits, which is 4 billion units, until you know
that LASI actually clips to 24 bits. This drawing space might be called
the drawing's universe. This should be adequate for almost any
application where LASI is intended.
If objects are moved they may exceed the signed integer limits of +/-
8,388,607 basic units. Since the positions are still 32-bit, objects that
move beyond the limits can actually leave the drawing universe, and
unless they are still active, they can't be moved back again. The SORT
command in addition to ordering objects will move any objects back into
the drawing. Read SORT.
Commands affected: CPY, FLP, MOV, ORIG, WMOV, QMOV, CMOV, ROT, STEP
Error Messages
Most messages are self-evident and appear in the dialog area in System
Mode, on the bottom line in Cell Mode, or on the top of the screen in
both modes when DOS calls are made. Some error messages are less obvious
and may be explained as follows:
"Out of DOS Memory!" means that you have run out of memory to hold the
objects of a cell in conventional memory. You should only see this
message if you are running LASI in DOS memory mode, that is, you have no
XMS or you set the FORM parameter "mmode=dos". If you use XMS you should
never see this message.
"Out of XMS Memory!" means that LASI was unable to find an extended
memory block to allocate. You may not have enough extended memory
available either because you have too little physical memory, or you have
partitioned it so that too little is available for XMS swapping. Another
possibility is that you have set a max limit too small in a PIF file if
you are running LASI under Windows. See Managing Objects.
"Unable to Free DOS Memory!" means there is something wrong. LASI was
unable to find a DMB (dos memory block) to swap to its corresponding EMB
(extended memory block) so that another block could be swapped in. This
should not happen because all DMB blocks are swappable.
"Out of XMS Handles!" means that the system has run out of available
"handles" to the areas in extended memory. When the operating system is
booted, a certain number of handles are created. HIMEM.SYS for example
creates 32 by default. Other XMS process you might be running may use
some of them, leaving the rest for LASI, which will use several (See
Managing Objects). The "/numhandles=" switch in HIMEM.SYS can be set to
provide more handles. In general, the number of handles should not be a
problem.
"Unable to Load File(s)!" means that you are not able to load a cell
file, usually because you have too little memory space available. This
also indicates that a cell file (BP5 or CL5) may be missing, or you are
trying to load a pooled cell.
"Box/Path/Vertex/Cell Limit!" means that you are trying to add an object
that exceeds the maximum number for its type.
"Not Available!" means that LASI will not act as a "shell" to execute
other programs ("child" processes).
"Rank Error!" means that you are trying to add a cell that has rank
greater than or equal to the cell on which you are working.
"File Error!" means that a file error occurred at the DOS system level.
Usually you tried to erase a file that did not exist, or you tried to
rename a file that didn't exist or had a name conflict.
"No Object!" means that you are trying to set an object to be added that
cannot be found in the cell list.
"Not Enough Space to Smash CELLNAME!" means that there isn't enough
memory to hold the objects that would result if a cell is smashed.
"RAM Drive Full or Unavailable ... Using Hard Disk!" means that you
either have set a RAM drive in the FORM.DBD file that doesn't exist, or
the RAM drive has run out of space for new files or new filenames. You
should erase old files from your RAM drive or, if possible, reconfigure
it in the DOS CONFIG.SYS file to provide more file space or a larger
directory.
File Types
The LASI drawing program uses several files when it is run. These are:
DBD (drawing basic data) Files
------------------------------
CELLS5.DBD is the master list of cells used by LASI to know which cells
it has to use in a drawing. The position of a cell in the file is an
index used by LASI to keep track of which cells are used in other cells.
FORM.DBD contains the configuration information used by LASI when it
starts. Read the General Information/Form File topic.
CONSTS5.DBD is a file that is maintained by LASI itself, and contains the
information (or constants) that determine the present settings of many
parameters. Although it is ASCII this file should not be edited.
TFF.DBD and TFF2.DBD are a generic text font files. Theses files are
binary files that contain patterns for the text characters. These files
are generated by the MAKETFF.EXE utility and can only be modified using
that utility. Otherwise, the user is free to make his own fonts following
the directions under the topic Text Generation.
Cell Data Files
---------------
Cell data files are named with the name of a cell with a BP5 or a CL5
extension.
BP5 files are internal binary files that contain information on boxes,
paths, text and vertices. These files are maintained by LASI and other
utilities and are not to be externally edited.
CL5 files are internal files that contain information on which cells are
contained in other cells. Rank 1 cells do not produce these files. These
files are not to be externally edited.
Form File
The configuration information for each drawing is in the FORM.DBD file.
This file is read when LASI starts and MUST be in each drawing directory.
You write it using a text editor in standard DOS text format. The
FORM.DBD file is an IMPORTANT file because it is used by the LASI drawing
program and most of the utility programs to configure to the particular
drawing environment.
The FORM parameters are keywords ending with "=" followed by a FORM
variable. There is no SPACE character between the "=" and the variable.
The parameters may be in any order, or be omitted. If a parameter is
omitted a default parameter is used if possible.
A comment may be added after any parameter if it is begun with a
semicolon ";". A parameter line should not exceed 75 characters.
The present FORM parameters are:
ramdrive=D:,etc. or blank (RAM drive logical letter name)
hcopy=program (name of bitmap program to be used)
plot=program (name of plotter support program)
font=filename (path\name of text font file)
vmode=vga,svga,xvga (forces the display mode)
pool=pooldirectory (path\name of cell pool directory)
fkey=commandline (progressively assigns F-keys)
onecmd=commandname (changes a resident to a one-time)
mmode=xms,dos (forces type of memory to use)
layer=name number (add layer table entry)
misc=mono,lcd,rmb (miscellaneous variables)
■ "ramdrive=" sets the letter name of a RAM drive that was created in
memory. Read the General Information/Using RAM Drive topic for more
information.
■ "hcopy=" is the name of the screen hardcopy program. Read the General
Information/Hardcopy and the HCPY command topics for information on
these programs.
Important: If you don't have a printer on the computer leave the hardcopy
parameter "hcopy=" blank. This will prevent the system from possibly
hanging up if the HCPY button is pushed.
■ "plot=" is the name of the plotter program.
Presently there are 2 plotter programs:
PGLPLOT.EXE Hewlett-Packard Plotters (HP-GL format)
PRNPLOT.EXE Hewlett-Packard LaserJet/DeskJet (PCL format)
Epson Dot Matrix/Inkjet (ESC/P format)
Windows/Paintbrush/Word Processors (PCX format)
■ "font=" is the path\name of the text font file. If this parameter is
left blank or if it is left out of the form file altogether, the
default "\LASI5\TFF.DBD" will be assumed. Note that this variable may
contain a DOS path. This lets you to make your own text font files and
put them in any directory.
■ "vmode=" overrides various switches and the automatic sensing of VGA
hardware. This can take multiple arguments separated by spaces or
commas. The arguments are:
"vga" forces 640x480 16 color graphics mode. (default)
"svga" forces 800x600 16 color VESA standard graphics mode. You must
have the hardware or the driver software that conforms to the VESA
standard.
"xvga" forces 1024x768 16 color VESA standard graphics mode. You must
have the hardware or the driver software that conforms to the VESA
standard.
■ "pool=" sets the directory where pooled cells are stored. If the pool
directory is on a different logical drive than the drawing directory,
precede the directory name with the drive letter. Omit "\" from the end
of the pool directory name. If you don't have a pool directory leave
this parameter blank or erase it from FORM.DBD altogether.
■ "fkey=" progressively assigns a command line to a function key,
starting with F2 (F1 is always HELP.) through F10, SHIFT-F1 through
SHIFT-F10, CTRL-F1 through CTRL-F10 and ALT-F1 through ALT-F10. Read
the General Information/Key Assignment topic for more details.
■ "onecmd=" makes a resident type command into a one-time command. Use
this if you find that certain commands are more convenient if they work
only once. Command name is the same as listed on the menu and can be
upper or lower case.
■ "mmode=" overrides the automatic memory selection. LASI will look for
XMS memory as a first choice, then DOS (conventional memory). If for
some reason you don't want to use the auto XMS selection, set this to
"dos". This will not allow XMS to be selected if it is unavailable.
■ "layer=" sets up the layer name table. read General Information/Layer
Table for how to use layer tables.
Hint: Any line not beginning with a keyword will be read as a comment.
You can insert your own notes or turn parameters on and off just by
preceding a valid parameter with a character such as a semicolon.
■ "misc=" sets unrelated parameters. Presently there are 3 variables
listed below. "misc=" sets only a single variable at a time, but may
be used as many times as needed to set parameters. Entries and may be
in any order.
"mono" redefines the color palette to black, gray, white and bright
white for use with monochrome monitors and laptops.
"lcd" increases the thickness of the cursor so that it is more visible
on a slowly changing LCD display.
"rmb" (Right Mouse Button) switches the menus to the right mouse
button, so that the mouse works as it did in previous versions of LASI.
Hardcopy
Hardcopies of the drawing display can be made by calling screen bitmap
printing programs. These are small "child" programs that are included
with the LASI System. These hardcopy programs can send the bitmap data
directly to a printing device or can produce a file for later printing.
Hardcopies are a quick way to print the screen. For high quality prints
you should use the plotting programs and the PLOT command.
Any hardcopy program is installed by including its name followed by any
arguments in the "hcopy=" parameter in the FORM.DBD file. Hardcopy
programs are always kept in the \LASI5 directory. When LASI calls a
hardcopy program, it attaches that path to the filename.
Presently there are three hardcopy programs:
ESCHCPY.COM Epson type printers (ESC/2 format)
PCLHCPY.COM All Laser/H-P DeskJet printers (PCL format)
PCXHCPY.COM Windows/PaintBrush, etc. (PCX format)
ESCHCPY and PCLHCPY support B&W and color printing.
All hardcopy programs use arguments that set various options. To find out
the arguments that each program uses just run the program from the DOS
command line.
Notes:
1. You may want to move the image's position on the page. To do so, use
the "{m" and "}m" command line arguments.
2. When you make a hardcopy the "s" or "x" argument is checked by the
LASI drawing program and the display will default to SVGA if "s" is
present or XVGA if "x" is present. This is INDEPENDENT of the video
mode where you are running LASI. Your video display must be VESA
compatible, or this may crash.
3. If you are copying in SVGA or XVGA you will get a correspondingly
larger hardcopy than with VGA that will have more detail. This may
overrun your paper in some cases. You can try to correct this in two
ways:
If you add a fractional number (<1.0) beginning with a decimal point
to the "hcopy=" command line, the hardcopy screen will be resized by
that fraction. Example: "hcopy=eschcpy .75" will resize the drawing to
3-quarters the usual size. This does not affect the hardcopy program,
but causes LASI itself to redraw smaller.
You can chop the print area by adding the "l" and "w" (length and
width) arguments to the command line. This can prevent your printer
"hitting its stops" or making multiple pages.
4. If you are operating in VGA, SVGA or XVGA mode, the hardcopy that you
get may not have a correct 1:1 aspect ratio if you specify the "g"
(generic printer) argument with the ESCHCPY program.
5. If you are making a data file, a small window will open and close in
the lower left of the screen requesting a file name.
6. The LASI drawing program redefines the color index 5 from dark magenta
to orange. The ESCHCPY and PCLHCPY allow you to redefine colors by
adding a number argument. If you redefine the orange color refer to it
by index 5.
Read the HCPY command topic.
Hardware
The LASI version 5.1 will run in some configuration on almost any IBM
compatible computer with an 80386 or higher CPU and common basic hardware
options. For small to medium layouts, LASI will run quite nicely on a 386
or 486 "average" PC with clock speed of 25 MHz or more; it will really go
on a Pentium with VESA or PCI bus.
This is the minimum hardware required:
An 80386 or higher
4 MBytes of memory
A hard disk drive
VGA video and color monitor (see below)
A mouse
Memory
------
The LASI drawing program takes a minimum of about 300KB. If XMS is not
detected or the FORM parameter "mmode=" is set to "dos", drawing object
data will be kept in conventional memory (<640KB). If you don't have full
conventional memory, the size of your drawing will be excessively memory
limited. You will also not be able to run certain programs from within
LASI. Lack of actual physical memory is probably not a problem with a 386
or better since most PCs have several megabytes of memory. What can be a
problem is using too much conventional memory for various drivers and
resident (TSR) programs.
You should always use DOS's HIMEM.SYS and EMM386 or some memory manager
like QEMM-386 or 386MAX to make the upper memory area (640KB to 1024KB)
available to save memory below 640KB.
LASI 5.1 needs extended memory for both its virtual memory manager and
possibly for a RAM drive. Since a RAM drive can be configured to use a
certain amount of memory, the rest will be available for the virtual
memory manager to use for object data. Just how to partition memory
depends on the amount of memory you have, and on the type of drawings you
have. Usually 4MB is enough for most work, but more memory is always
better.
Hard Disk Drive
---------------
While working on a drawing, the basic drawing files (or cell files) need
to be swapped back and forth to the disk. The hard disk drive should be
as fast as possible. Each cell may use one or two files for storage. One
cell file (.BP5) can be as large as 1.5MB. Files this large will be rare.
Generally, LASI makes a lot of small files.
Many people don't realize that the number of files that you can have on a
disk does not go up linearly with the disk size. Due to the 16-bit
(65536) limitation of the number of entries in the FAT (file access
table) that DOS makes on a drive, the "cluster" size on a drive will be
2048, 4096 or 8192 bytes. Each file uses at least one cluster, so that if
you have many small files you can use more disk space than you think.
Most new large drives will usually be partitioned into more than one
"logical drive", the actual letter assigned to a drive. Sometimes a
smaller drive partition can actually be more economical. If you have
DOS 6, run SCANDISK.EXE. As it runs, it will tell you the number of
clusters on your hard disk. You might find that a 100MB drive will hold
almost as many LASI files as a 400MB drive.
VGA Adaptor with Color (or Mono) Monitor
----------------------------------------
LASI uses some direct hardware access so the VGA board must be register
compatible to the IBM standard. If you have VGA graphics, graphics will
default to VGA 640x480 16 color mode. You may override the automatic
default by setting a "vmode=" parameter in the form file.
If you have a VGA board and a monitor capable of SVGA 800x600 16 color
graphics or XVGA 1024x768, you can run LASI in that mode by setting
"vmode=svga" or "vmode=xvga" in the form file. You must have a board that
is VESA (Video Electronics Standards Association) compatible with
supplemental driver software (furnished by the board's maker), or the
board must have a BIOS that is directly compatible with the VESA
standard. LASI uses VESA modes 102h and 104h. Most new boards will meet
these requirements.
Note: The XVGA 1024x768 graphics mode is somewhat poorly supported in
many video boards. LASI will try to use the board hardware directly and
bypass the BIOS. Hardware seems more consistent than BIOS among boards.
If you get strange results in XVGA use SVGA or VGA instead.
If you have a monochrome monitor with a gray scale VGA display, you can
redefine the color palette to black, gray, white and bright white by
adding "mono" to the "vmode=" parameter in the form file. You may have to
trick your VGA board into thinking that it has a color monitor by
grounding the ID bit 0 (pin 11 on the 15 pin D connector).
Laptop computers with a VGA display will also run LASI. A possible
problem when using a laptop is that the LCD display isn't fast enough to
track the mouse cursor. To improve this, the cross shaped mouse cursor
may be expanded to more pixels to improve the cursor's visibility if
"lcd" is added to the "vmode="parameter.
Because LASI writes directly to the hardware, you will get faster
graphics if you use a 16-bit graphics board, instead of an old 8-bit
board. In ISA (AT) type computers of any CPU speed, the (ISA) bus speed
is usually still 8 MHz. This limits the drawing speed of LASI and most of
any other graphical software, including Windows or OS/2.
Some video boards come with a version of their BIOS (the programming that
lets DOS connect to the actual hardware) that can be loaded into RAM and
not read from a ROM. This should be used if memory space permits,
particularly if LASI writes text slowly or if the mouse seems to act
lethargic.
There are also new bus architectures that raise the bus speed when
servicing video, or have an independent high-speed bus, such as the VESA
Local Bus (VL-Bus) or the PCI bus. If your graphics board can work at a
higher speed or is VL-Bus or PCI compatible, your LASI drawing speed will
GREATLY improve.
If you are buying a computer to run LASI (or anything else), it is
recommended you get one with a VL-Bus or the PCI bus. Note also that
"accelerated" video boards are available, but are often designed to speed
up Windows or specific CAD systems, like AutoCAD, using special driver
software. These may not help LASI very much.
Mouse
-----
Pretty much everything is done graphically by mouse. All mouse function
calls conform to Microsoft Mouse Protocol. LASI does little more than
look for button pushes and return screen location. The cursors are drawn
directly, so LASI is very mouse tolerant. Any mouse that has at least two
buttons, has driver software that works with VGA, and understands some
basic Microsoft mouse driver function calls (Int 33, nos. 0-5, 10 and 11)
should work with any of the LASI programs.
To use the mouse, first be sure that the mouse driver software that came
with your mouse is installed according to your mouse's instructions, and
that you know that the mouse works with most other programs. Using
current Microsoft mouse driver software and a Microsoft compatible mouse
is usually best.
The LASI drawing program reads "mickeys" directly (actual movement count)
and moves the cursor accordingly. Certain mouse driver sensitivity
switches (/H /V) won't work when this is done, but sensitivity can be set
with the SET command. The utility programs use the standard mouse driver
functions to read the mouse position. The software mouse sensitivity
controls that come with your mouse should work with these programs. Read
the SET command topic.
Optional but very desirable:
A math coprocessor
A printer (dot matrix, inkjet or laser)
Math Coprocessor (80387, etc)
-----------------------------
Most of the math is done in integer form, which is handled by the CPU
directly. A certain amount of floating point arithmetic is also done.
If you run LASI.EXE, it will examine your hardware and overlay either
LASI587.EXE or LASI5A.EXE. If you try to run LASI587.EXE without a
coprocessor, the program will return a system error. If you don't have a
coprocessor and can't afford one, LASI5A.EXE will always run, but it
draws about half as fast in certain situations as LASI587.EXE and uses a
little more memory.
If you have a 486DX or Pentium CPU the coprocessor is already there.
LASI.EXE will detect this and always run LASI587.EXE as your drawing
program.
Printer
-------
Hard copies of the screen can be made directly from LASI. Making
hardcopies is very handy to examine and keep track of your drawings.
Hardcopy support is provided for Epson Generic, FX and LQ type printers
and H-P LaserJet/DeskJet type printers. Most printers seem to conform to
these standards. The new COLOR inkjet printers make very nice hardcopies
and are supported by the ESCHCPY.COM and PCLHCPY.COM programs. Read the
HCPY command topic.
LASI 5.1 has a new plotter program PRNPLOT.EXE that makes high-resolution
prints on H-P LaserJet/DeskJet and Epson ESC/P type printers. The program
supports printing in color.
If your printer doesn't work contact the author to see if anything can be
done about it. Have technical information available on your printer and
be sure that it is capable of bitmap graphics.
Help on Help
If you are reading this help topic you are probably running the LASI Help
and Information program LHI.EXE. LHI is called from LASI by pressing F1.
If the mouse cursor is on a COMMAND NAME the name will be passed to LHI
and that command's help information will come up immediately. If the
cursor is in the Toggle Button area in the upper right of the screen,
"Toggle Buttons" will also be called.
LHI.EXE will accept optional DOS command line arguments as follows:
lhi [drive\path\filename] [topic1 or topic2] [topic2]
[Drive\path\filename] is the full name of the help file to read. The
filename must contain the extension ".LHI" or the argument will be
considered as a topic argument. Leaving this argument out causes a
default to "\LASI5\LHI.LHI".
The [topic1 or topic2] argument is the topic for the first search. This
may be a primary topic such as "Command Information" or a secondary topic
such as "Copy". If the topic is more than one word enclose it in double
quotes ("") as DOS requires.
The [topic2] argument is the subtopic of topic1. This is only necessary
if topic2 appears as a subtopic of topic1 in more than one place in the
help file. For example, if "Introduction" appears more than once, you
must specify the primary topic as topic1 and then "Introduction" as
topic2.
All arguments may be upper or lower case.
Key Assignment
CTRL-END exits to DOS from Cell or System Mode.
ENTER enters information and does a DRAW command.
CTRL-ENTER toggles between numbered layers and the layer table
ARROWS move the drawing window in that direction.
TAB toggles the cursor between a small cross and crosshairs.
A toggles the cursor between working and unit grid.
C toggles the path center line on and off.
D toggles the distance marker on and off.
I toggles the cell image on and off.
N toggles the outline name on and off.
O toggles the octogonal cursor mode on and off.
R toggles the 0,0 reference mark on and off.
T toggles the text reference point on and off.
The above keys can also be toggled by clicking the LEFT (or RIGHT) mouse
button on the corresponding button in the Toggle Button area of the
display.
X or Y opens a PKE coordinate entry.
Z sets the measurement zero point.
SPACE gives a measurement from the zero point.
ALT (while pressed) changes the cursor between working and unit grid.
CTRL (while pressed) causes the mouse cursor to work the same on outlined
cells as it does on fully drawn cells.
ESC has several uses:
ESC aborts most commands at any stage of completion.
ESC aborts drawing at various stages. Read the General
Information/Drawing Speed topic for details.
ESC causes a default value to be retained in any input that has a
default value shown in the white box, even if a new value has been
typed.
ESC returns a NULL (no characters) to such questions as the name of a
cell and therefore aborts the process.
F1 always calls HELP.
The remaining function keys are USER DEFINABLE.
F2-F10, SHIFT-F1 through SHIFT-F10, CTRL-F1 through CTRL-F10 and ALT-F1
through ALT-F10 may be defined by writing a command with any arguments
into the FORM.DBD file.
To assign the keys you simply write the command after an "fkey=" keyword
in the FORM.DBD file. Keys are assigned progressively and the exact
assignment can be checked by the FORM command.
A command must be a command from the Cell Mode menus and must be followed
by any arguments separated by commas.
Examples: "fkey=view,1-4 10 12"
makes those layers visible.
"fkey=wmov,0,0,100,100,0,0,10,0"
moves objects in the 0,0 to 100,100 rectangle
10 physical units to the right.
The command line may be upper or lower case and no longer than 80
characters. Any coordinates are in physical units. Any text generated in
this way will be created with case preserved.
Commands assigned to function keys are executed on a ONE-TIME basis even
though normally the command may be a resident type of command.
Commands work differently in System Mode. No System Mode command may be
assigned to a function key. Certain commands in Cell Mode work
differently also, and may not be assigned to function keys. These are
LIST, CELL, SYS and UNDO.
LASI should be smart enough to request additional arguments in the normal
way if you list too few in the key assignment, or throw away any extras
if you have too many. Coordinates are always requested in pairs.
Keyboard Input
When LASI needs typed input from the keyboard, whether it be alpha or
numeric, a simple line editor is used to enter the information. This line
editor works as follows:
■ A prompt will be displayed on the screen followed by a white input box.
■ The input box initially contains any default values and the "│" cursor
at the right.
■ Press LEFT/RIGHT ARROW to move the text cursor left or right.
■ Press HOME/END to move the cursor to the beginning or end of a line.
■ Press BACKSPACE to erase a character to the left of the cursor.
■ Press DELETE to erase the character to the right of the cursor.
■ Press CTRL-BACKSPACE to completely erase a text line.
■ When you first select a parameter, typing any printable character other
than SPACE or LEFT/RIGHT ARROW will replace the whole text line.
■ To restore the original value at any time, press ESC or press ENTER
with the input box empty.
■ To enter a value press ENTER.
Local Area Network
It should be possible to use the cell pooling feature of LASI 5.1 to
provide a common pool of basic cells over a Local Area Network (LAN)
consisting of several PCs or work stations.
Put the network server drive directory prefix in the "pool=" parameter in
the FORM.DBD file. LASI will then load an attached cell's BP5 file from
the server. If you are using a RAM drive locally, the file will then be
stored on the RAM drive the first time you draw it, and will remain there
until you quit LASI.
You can also make a permanent copy of a pooled cell from the network
using the IMPORT command.
For transferring cells with rank greater than 1, you must use TLCIN.EXE.
You can use the TLCIN command in System Mode and set the source to the
server's directory. Any files transferred by TLC will become normal cells
not attached cells. Care also must be taken not to write back to the
server, since TLC works both ways.
Layer Table
LASI version 5.1 has two ways to select layers. You can use the numbered
layer method LASI has always used, or you can set up a table of menu
buttons that gives the numbered layers a name. This is usually preferred
because it lets you remember more easily which layers are which masks.
To use a layer table, simply write the layer name and number separated by
a SPACE as the variable in the "layer=" parameter of the FORM.DBD file.
Rules for layer table:
■ If the variable is not a name followed by a space and then a number
(1-64), the parameter will be discarded.
■ If the parameter "layer=" is left blank, a blank table entry or menu
button will be made.
■ Layer names are truncated to 4 characters to be CIF compatible.
■ Up to 28 layers can be entered into the table; their order in the table
is determined by their order in the FORM file.
Press the CTRL-ENTER keys to toggle between number or table modes. With
the table toggled ON, whenever you click the VIEW or OPEN commands, the
menu area of the Cell Mode display will be redrawn with the layer names
and numbers as buttons. You can click a button and turn a layer on or
off. When a layer is ON the layer name and number will be shown in a
bright color. To exit, click the RIGHT mouse button or press ESC.
The VIEW command doesn't take effect until you redraw. OPEN takes effect
immediately after you exit the menu.
The Layer Table also works with the LAYR, TLYR and CLYR commands. Simply
click the button of the layer you want.
Each Cell Mode rank has its own table layers that are viewed or opened.
These are stored in the CONSTS5.DBD file and returned if you change ranks
or if you quit LASI and restart again.
Managing Objects
The data for LASI drawing objects is mostly kept in conventional memory.
However version 5.1 of LASI has a memory manager that stores data in the
extended memory area above 1MB. When you run out of conventional memory,
LASI will start moving blocks of data back and forth between conventional
memory and extended memory, using XMS services. This is all transparent
to the user, except for a slight delay on slower computers.
The LASI main program is loaded at some low address determined by the DOS
system. The main program will use about 200KB, and the remaining memory
space can be used for object record data.
≡≡14
Conventional Memory Map: 1KB=1024 Bytes, 1MB=1024KB
(temporary data) small prgms.
DOS+TSRs LASI DOS memory blocks (DMB) or more data
├───────────┼────────────┼────────────────────────┼──────┤
0KB <Minimum> <≈200KB > <≈300KB> <64KB> 640KB
Extended Memory Map:
(permanent data)
possible RAM drive area extended memory blocks (EMB)
├────────────────────────┼──────────────────────────────>
1024KB ?
When LASI works in DOS memory mode only (if "mmode=dos" is set or no XMS
is detected) object data is stored in the memory above the main program
in the DMB shown above. Since this area is finite, eventually you will
run out of memory if your drawing contains too many objects.
If LASI uses extended memory, unlimited memory is effectively available,
but at the cost of more complexity. Extended memory is not directly
accessible by DOS operating systems because they run in what is called
"real mode", which was established early in PC history and can only
address memory up to 1MB.
In the last few years, eXtended Memory Specification (XMS) services were
added to most operating systems: DOS, Windows, etc. as a means of easily
expanding the data memory available to DOS programs. XMS provides
temporary access to memory above 1MB and allows data to be swapped
between extended memory and conventional memory, where a DOS program can
work with the data.
To manage object memory LASI has to do the following (simplified):
When LASI loads a cell file or when objects are added to a drawing, it
has to make sure that it has a place to put the data both in DOS and
XMS memory. LASI works in blocks of data, so if memory is needed, a
temporary DMB and a permanent EMB will be allocated. LASI keeps lists
of DMBs and EMBs, so that the contents and location of these memory
blocks will always be know.
When DMBs fill available DOS memory, something has to give, and LASI
has to begin a process of swapping DMBs to EMBs and freeing the DMBs
one at a time. New data is placed the newly freed DMB and the old data
block is marked that it is no longer in DOS memory.
If previous data is needed, a DMB must be freed so that the data in the
corresponding EMB can be swapped back, and any data that was present in
the freed DMB must be moved to its own EMB.
When a cell is exited or if certain commands (DOS or HCPY for example)
are used, all data must be written to the disk and all DMBs and EMBs
must be cleared. This is important because first current data is
protected, and second, DOS can not access extended memory, and patches
of unavailable extended memory can be caused by an improper exit from
LASI or a "child" program. This can only be cured by a reboot.
Doing all this is obviously not a trivial job. LASI 5.1 has a set of
functions that work directly to standard XMS services and form what is
called a "virtual object manager" (VOM). The manager works transparently,
and may only be noticed on some slower computers when the additional
layer of programming abstraction makes things run a little more slowly.
The VOM controls the memory used for box, path, vertex and cell object
data records, which are all different.
The simplifying matters, memory is always allocated in 8KB (8192 byte)
blocks, without regard for the type of object. Different cells can have
different types of objects, and the VOM will accommodate.
In each block, a certain number of object records can be fitted. The
number is not necessarily and exact fraction of block length, but is the
largest number of records that will completely fit in the block. Each
type of object has a maximum number of blocks per cell. These numbers are
as follows:
≡≡6
Bytes/Record #Rec/Block #Blocks Max.#Rec/Cell
Boxes: 18 455 72 32760
Paths: 8 1023 16 16368
Vertices: 12 682 96 65742
Cells: 10 819 20 16380 (per rank)
When XMS services are used to allocate blocks of extended memory, numbers
called handles are assigned by the XMS to identify extended memory
blocks. These are limited by the system to a fairly small number (32 by
default).
This is much less than the number of 8KB blocks that LASI uses. Each
handle really points to a set of blocks, and each block is further
identified by an offset within the larger block.
The effect of this is to cause the VOM to take larger pieces of extended
memory than it might actually need. If you have over 4MB of memory, you
probably will not have any problem. The amount of memory that will be
needed is as follows:
≡≡6
#Rec/Block #Blocks #Blocks/Handle #Handles Bytes
Boxes: 455 72 36 2 589,824
Paths: 1023 16 16 1 131,072
Vertex: 682 96 32 3 786,532
Cells*Ranks: 819 20*15 20*15 15 163,840*15
Note that each cell rank assigns a new set of blocks to a maximum of 15.
Normally you will not make a drawing 15 ranks deep. Note also that boxes
and vertices are broken into 2 and 3 handles respectively, so that only
the necessary blocks or handles will be allocated.
When LASI starts, it checks if it has a minimum amount of XMS memory
available. This is about 1.6MB. This insures that all files that will be
written back to the hard disk can be safely loaded. This does NOT insure
that all drawings can be completely displayed (note the requirements
above). You may see nested cells being drawn as outlines because they
could not be full loaded. This is not fatal, you just need more memory
available.
When LASI is in System Mode, the maximum amount of available memory will
be displayed in the Environment area. When in Cell Mode, the INFO command
shows how much memory is still free. Unless you make cells with thousands
of objects, you will probably not use too much memory, and you won't have
to worry about any memory limits. If you add up the numbers above, you
will find that most LASI drawings will just about fit in a PC with 4MB of
total memory, and will fit for sure in 8MB.
If you have very big cells, it is possible that cells that "fit" on one
computer will not "fit" on another. It is therefore important that you
have as much TOTAL memory as possible in your computer. When you start a
program that manages objects, either LASI or one of the utility programs,
the available memory will be displayed (Press "Mem"). Use this number for
comparison.
LASI 5.1 frees all its data area on certain commands. You will always be
able to use DOS and HCPY commands because they free all data memory. The
"resident" part of LASI will however remain which will occupy about
200KB. If you run out of memory, you might want to try to maximize your
conventional memory. The newer DOS's you can load much of your resident
software into high memory. Read the General Information/MS-DOS 5 or 6
topic.
You can also gain quite a bit of DOS memory by using one of the better
memory managers such as QEMM-386 or 386MAX, which move TSRs and drivers
into high memory more effectively than DOS 5. MS-DOS 6 has MEMMAKER which
does the same as QEMM-386 and 386MAX and will probably do quite nicely.
Making Measurements
The position of the cursor in the drawing window is continuously read out
at the bottom of the screen. The coordinates are either in working grid
units or in the smallest possible grid unit, the unit grid. You may
switch between these by pressing the A or ALT keys.
There is no ruler, but distances can be measured graphically. The Z key
zeroes the measurement reference to the current cursor grid point. The
current cursor grid point may be either in the working grid or the unit
grid, depending on the resident command or if the cursor grid has been
switched by the A or ALT keys.
If the SPACE bar is then pressed, a measurement from the zero point will
be displayed at the bottom of the screen. The second point will be
gridded to the present cursor grid.
If the D key is pressed or the button is clicked, the distance marker
will be toggled on and off. An intensified "D" will be displayed in the
toggle button area of the screen to indicate that the marker is ON.
Note: You can hold down the SPACE bar and move the mouse. This will give
a continuous readout of the distance from the reference.
Mouse Cursor
LASI is designed to be very mouse intensive. Positioning the cursor and
clicking the mouse buttons chooses the commands and inputs most all the
graphical information. The exceptions being when a literal or numerical
input is required, or when a specially assigned key is used.
LASI doesn't use any cursor "clicking and dragging". Each cursor input is
a single up and down mouse button click. The reason for this is that LASI
always allows you to make drawing window changes within other commands,
and therefore must be able to nest mouse button clicks.
The mouse cursor is usually a small cross that may have other figures
added to it as follows:
■ When a commands expects a distance displacement, a dotted line or
vector will appear.
■ When a command expects to select or "get" something, a dotted
rectangular area will appear. A point is defined to INTERSECT the area
if it is ON or WITHIN the boundaries.
■ When a BOX is to be added, the dotted rectangle previews the box.
■ When a path is to be added, one or two dotted lines preview or "rubber
band" the new path.
The cursor can be toggled between the small cross and crosshair lines by
pressing the TAB key. The cursor automatically turns back to the small
cross if not on the drawing window.
When a cursor input is expected, the point needed will be shown at the
bottom of the screen after the command name. Most commands take one or
two points.
The cursor moves in discrete steps. When a command is chosen, the cursor
is set to move either in the unit grid or in one of a number of preset
working grids. The working grids are entered using the SET command, and
are changed with the WGRD command. The cursor's grid type may change from
command to command or during a command, but it may always be toggled from
one type of grid to the other by clicking the "A" toggle button, or by
pressing either the A or the ALT key on the keyboard.
Certain cell commands use a DOUBLE CLICKING of the LEFT mouse button to
change the way that the command acts on cells. If you click twice
rapidly, the cells that OVERLAP the mouse cursor points will be affected.
If you wait a bit between clicks, only the cells that have their areas
fully ENCLOSED by the mouse cursor window will be affected.
The time between mouse clicks is set as the number of "ticks" using the
SET command in Cell Mode. Each tick is about 1/20 sec. Adjust this to
your own comfort. The number of ticks is saved and returned when you
restart LASI.
Hint: If you want to turn off double clicking entirely, set the number of
ticks to 0. If you always want double clicking actions, set the number
of ticks to a large number, such as 32000.
In Cell Mode, as you move the cursor, position reports are made at the
bottom of the display. If these are printed too often on a computer with
slow video, the cursor will be "bouncy" and hard to control. You can use
the SET command to set the number of ticks between position reports. The
number is an integer and will usually be set 0 to 10. Start with 0 and
increase this number for a better cursor feel.
Octogonal Mode
The O key or the "O" button toggles octagonal cursor mode on certain
commands.
■ The "O" intensifies to indicate that octagonal mode is on.
■ When octagonal mode is on, the cursor movement vector is snapped to the
nearest 45 degrees. The commands ADD (for paths), MOV, WMOV, QMOV, CMOV
and CPY are affected.
Octogonal mode is used to restrict drawing so that only 45 and 90 degree
angles are allowed, which preserves drawing neatness and conforms to
certain physical artwork generation requirements.
Operating Modes
≡≡13
LASI runs from DOS in two operating modes, System Mode and Cell Mode:
LIST ┌<----------┐
┌─────────┐ "lasi" ┌─────────┐ CELL ┌─────────┐ |
│ │-------->│ System │----->│ Cell │ |
│ DOS │ │ │ │ │-->┘
│ │<--------│ Mode │<-----│ Mode │
└─────────┘ QUIT └─────────┘ SYS └─────────┘
| |
└---------------------------------->-┘
"lasi cellname"
System Mode is a housekeeping mode which has commands for overall
manipulation of cells and the control of certain drawing parameters.
Cell Mode is the mode where actual drawing is done. When Cell Mode is
entered a cell drawing is opened for creation or modification. Cell Mode
has the following properties:
■ Cell Mode has up to 15 ranks.
■ The rank of Cell Mode is obtained from the cell being drawn.
■ Each Cell Mode rank keeps separate parameters, such as window size and
position, in order to simplify moving between different ranks of cells
while working on a drawing.
■ All Cell Modes are identical except for the ranking.
■ Both modes have a menu of commands on the side of the screen. The
commands are explained under their own help topics.
■ When LASI is started it goes to System Mode.
■ Using the SYS command that appears in the Cell Mode menu is the normal
way to reenter System Mode from Cell Mode.
■ Using the CELL and LIST commands which appear in both mode menus is
normal way to enter Cell Mode and open another cell.
Cell Mode may be entered directly from DOS (as shown above) by adding the
name of a cell to the command line when starting LASI.
Example: "lasi flipflop" when typed in DOS runs LASI and
enters into the cell named "FLIPFLOP".
Read the CELL, LIST and SYS commands.
PKE Coordinate Input
Parallel Keyboard Entry can be done any time a command is requesting a
point normally inputted by the mouse. To start a PKE entry press either
the X or Y keys. The coordinate pair will appear in the lower left corner
of the screen.
Pressing the X or Y key clears that coordinate to zero and a new value
may then be typed into that coordinate. Coordinate values may contain a
decimal point, a minus sign or "E" if the number is in exponential form.
Corrections may be made by pressing X or Y again, clearing the value to
zero, or by using the BACKSPACE key.
To enter the coordinate pair press ENTER.
To abort a pending PKE entry, click on any menu button using the mouse,
except any of the window commands, or press ESC.
Note: Some commands that require an incremental input and not an absolute
position (MOV for example) accept only a single PKE distance entry
instead of two mouse cursor inputs.
Pooling Cells
Since version 4.1 of LASI, rank 1 cells may be kept in a common "pool".
This pool is a drawing directory that contains cells that might be used
in many different layouts, such as logic elements or standard
transistors. The basic cell BP5 file is taken either from the default
drawing directory or the pool drawing directory.
≡≡14
Cell Source Diagram:
┌───────────┐ Attached Cell
BP5 │ POOL │----->-┐
File └───────────┘ | Attach
| | Command
| | ┌───────────┐
| IMPORT ├--->│ Drawing │
| Command | └───────────┘
V |
┌───────────┐ |
BP5 │ Draw Dir. │----->-┘
File └───────────┘ Normal Cell
The pool directory is set with the "pool=" parameter in the FORM.DBD
file. The pool variable is the name of the directory where pooled cells
are stored.
Example: "pool=c:\ourpool" would be a line in FORM.DBD
If the pool directory is on a different logical drive than the drawing
directory, precede the directory name with the drive letter. Omit "\"
from the end of the pool directory name.
The cells are "attached" to a drawing using the ATTACH command in System
Mode.
The attached cells may be included in a drawing by first making them the
object with the OBJ command and then adding them with the ADD command.
Once added the attached cells may be manipulated like any other normal
cell.
Important: Any pool cells that were made using version 4 of LASI need to
have their internal files in the pool directory replaced with version
5.1 internal cell files. The easy way to do this is to make the POOL
directory the current drawing directory, and run 4TO5.EXE. The
procedure is the same as described in Basic Information/Converting
Versions.
Read the General Information/Attached Cells topic and the ATTACH and
IMPORT command topics.
Starting a Drawing
This is an elaboration on Quick Start. If you have run LASI you already
know how to get LASI up and working, here are more details that you would
normally go through when really using LASI seriously.
To start a drawing:
1. Create a "drawing directory" as an independent directory.
The drawing directory should be named for the drawing to be made. Each
different drawing is kept on the hard disk by isolating it in its own
directory. The drawing directory will contain certain .DBD files
(drawing basic data) and the "internal" files (.BP5 and .CL5) for the
cells that you create.
NEVER make drawings in the \LASI5 directory.
2. Copy a FORM.DBD file to the drawing directory.
The FORM.DBD file customizes LASI to the specific hardware and software
you are using. The FORM.DBD is local to a drawing directory so it can
be different for each drawing. You may copy a form file from another
drawing or use the generic one that comes with the system files. Read
the General Information/Form File topic for a description of the
different parameters.
3. Edit the FORM.DBD file if necessary.
The FORM.DBD file is important since it configures your drawing to your
hardware. You can usually use the default values in the original
distribution FORM.DBD at first, but you eventually will need to change
FORM.DBD using a editor such as EDLIN.COM or EDIT from MS-DOS 5 or 6.
Once you establish a "normal" FORM.DBD file, you can just copy it from
drawing to drawing.
4. Make the drawing directory your default directory and run LASI.EXE.
The program will start in System Mode. When you first begin a drawing
you should check the scale using the SCALE command and decide if the
parameters are what you want. The scale really only relates the
physical units in which you do a drawing to the basic units in which
the drawing is actually stored. If you do not use the appropriate
scale, you may create cells that have too little resolution, or too
much resolution, and the overall size of your drawing will be too
small.
5. If you are using the cell pooling feature of LASI 5.1 attach any
pooled cells that you think you might need.
You can always attach cells, but bringing in basic cells is a good
place to start.
6. Use the CELL command to go to Cell Mode and create new cells.
Start by drawing the lowest rank cells that will be used as building
blocks for higher rank more complex cells, and eventually the overall
layout. Generally, repetitive structures should be made as individual
cells and used to build other cells. However, too few boxes or paths
can be a waste of a cell. With experience you will develop a feel of
how to partition your cell structuring.
Hint: If you have a similar drawing in another directory and you have
already defined the hardware and drawing parameters, you can copy the
CONSTS5.DBD file into the new directory. This will save you the trouble
of redefining things over again. The CELLS5.DBD file is NEVER copied
from drawing to drawing since it serves as a cell reference list that
is different with each drawing. For the same reason, you MAY NOT copy
BP5 and CL5 files between drawings.
Toggle Buttons
Toggle buttons control special drawing functions. The letters intensify
to indicate that a function is toggled ON. Clicking a button with the
LEFT (or RIGHT) mouse button is the same as pressing a key.
"A" indicates that the alternate grid (working or unit) is in effect.
This clears after each command is completed.
"C" indicates that dashed path center lines will be drawn.
"D" indicates that a small diamond shaped marker will be drawn at the end
point when you measure distances.
"I" indicates that a cell's image will be drawn in addition to the cell.
"N" indicates that if a cell is being drawn as an outline, the name of
the cell will be drawn in the lower left corner of the outline.
"O" indicates that octagonal cursor mode is ON.
"R" indicates that a 0,0 reference mark will be drawn.
"T" indicates that the small diamond shaped reference mark for text will
be drawn.
Read General Information/Key Assignment for more key functions.
Undoing Mistakes
Whenever you enter into Cell Mode or use the SORT, DEL or SMSH command, a
backup copy of the drawing is stored on the hard disk. To retrieve the
stored backup, you use the UNDO command.
If you don't sort, and you leave LASI unattended, after a certain amount
of time, LASI will automatically sort and backup cell drawing data on its
own. This time is set using the Cell Mode SET command.
Read the SORT, DEL, SMSH and UNDO command topics.
Using MS-DOS 5 or 6
Using DOSSHELL found in MS-DOS 5 or 6 (if you like it) is a way to setup
drawings when using LASI. You can make each drawing a Program Item either
by itself or as a part of a Program Group. Set the "Commands" property to
"lasi.exe" and the "Startup Directory" to the drawing directory. You may
also use other "shells" like XTREE to set up drawings. If you are
normally running Windows, you can setup LASI under Windows. Read the
Using MS-Windows topic.
The ability to MS-DOS 5 or 6 to load drivers into the upper memory area
(640KB to 1024KB) on a 80386, 80486 or Pentium computer should be used
to save conventional memory. This will give you more memory for a larger
number of LASI objects and the memory manager will not have to swap so
often.
MS-DOS 6 has a program MEMMAKER.EXE that finds places to move TSR
programs out of conventional memory. This should be used if at all
possible because it will automatically make more memory available.
Using a RAM Drive
The RAM drive provision in LASI is becoming somewhat obsolete because new
hard disks are quite fast and usually have internal caches that retain
frequently used files - just as LASI requires. The newer versions of the
disk cache utility SMARTDRV (Microsoft) also has become more efficient.
However, if you have a older slower hard disk drive, drawing speed can be
greatly improved if a RAM drive is used. Cell files that normally would
be kept on a hard disk can be placed on a RAM drive by using the MS-DOS
RAMDRIVE.SYS driver, or similar software. LASI will automatically swap
cell files to a RAM drive when it draws, and then restore them to the
hard disk when it is finished.
To use a RAM drive you must first create the RAM drive during DOS bootup
time by adding the driver to your CONFIG.SYS file. The RAM drive should
be located in extended (or expanded) memory.
To have LASI recognize a RAM drive, the "ramdrive=" parameter of the
FORM.DBD file must be the letter name of the RAM drive. For example, if
the RAM drive installs as disk E:, then "ramdrive=E:" would be the
parameter.
If you have no RAM drive installed, set the "ramdrive=" parameter to the
logical drive letter name of your drawing directory disk, or simply leave
the "ramdrive=" parameter blank, since the drawing directory is on the
default disk drive.
The RAM drive must be large enough to hold all the cell files in a
drawing. It should however be ONLY large enough to hold the expected cell
files. If you use all your extended memory for a RAM drive, you won't
have enough extended memory for object data swapping. When you start LASI
the Environment shows how much extended memory you really have.
Computers with a several megabytes of additional memory above 640KB are
needed for most real work. When creating the RAM drive the driver's
parameters must be set to hold both the amount of memory and the number
of files expected.
When LASI is run, it presently does not erase the RAM drive files. Old
files may therefore clutter your RAM disk. Since it is not too hard to
erase the wrong disk, possibly your hard disk, it is recommended that you
make a batch file (.BAT) to erase the RAM drive when beginning a new
drawing, load a mouse driver, if needed, and then run LASI. Of course,
whenever you turn off the computer power, the RAM drive is erased anyway.
If you do run out of RAM drive space a warning will appear on the screen.
LASI will try to preserve your drawing by switching to the hard disk if
it finds that the RAM drive is full. Drawing will slow down noticeably in
that case. In particular, if the basic objects (boxes, paths and text)
are no longer swappable to the RAM drive, you will see the hard disk
being accessed if you are drawing a cell that contains other cells. If
this happens, you should exit LASI, increase your RAM drive space, if
possible, and rerun LASI.
Important: If you do not use a RAM drive, run a disk organizing program
such as OPTIMIZER (COMPRESS) from PC Tools or SPEEDISK from Norton
Utilities on your hard disk often. If cell files become highly
fragmented, the drawing time for LASI can become incredibly long.
MS-DOS 6 now includes DEFRAG.EXE which is a cut-down version of
SPEEDISK. Running any of these programs frequently can greatly improve
drawing speed.
Using SMARTDRV
Installing a software disk drive caching driver can speed up the
redrawing of cells the same as using a RAM drive. The disadvantages are
that you will occasionally go to the hard disk if you lose a file from
the RAM cache, and you will use more RAM in the DOS program area below
640KB unless your cache uses upper memory for its manager. The advantage
is that you will not have to worry about running out of RAM drive space.
Any GOOD drive cache driver, such as SMARTDRV from Microsoft, should
work. Installing the drive cache in extended memory just as with a RAM
drive is preferred, and the cache size should be as large as is needed to
get a good hit ratio. If you run Windows, you probably have SMARTDRV
already installed, in fact, SMARTDRV.EXE 4.0 that comes with Windows 3.1
or SMARTDRV 5.0 that comes with DOS 6.2 are quite good.
To use a cache, be sure that the "ramdrive=" parameter in FORM.DBD is the
same drive letter name as your drawing directory or has been left blank.
Using Windows(95)
LASI and its utility programs will run under Microsoft's Windows 3.1 and
Windows 95, as DOS Applications. LASI should normally be run under
Windows Enhanced Mode. To install LASI in Windows 3.1:
1. Use the Windows PIF editor and create a PIF file for each program you
want to run on a drawing. You should enter the program name as the
"Description", and a "Command Line" such as drive:\LASI5\LASI.EXE,
where "drive" is the logical drive where LASI is installed. You should
leave the "Working Directory" blank. You should set the XMS min. and
max. memory limits to something that depends on how much RAM you have,
but in general should provide several megabytes for LASI. Setting Min.
to 0 and Max. to -1 gives all available memory.
2. Use the Windows Program Manager "File Properties" to set the icon for
each program. Icons are found in subdirectory \LASI5\ICONS. The
generic icons for converter programs are ANY2TLC.ICO and TLC2ANY.ICO.
The generic icon for all plotter programs is ANYPLOT.ICO. The LASI.ICO
picture is a small lateral MOS transistor.
3. For each item in a particular group, under File Properties" set the
"Working Directory" for the icon to the particular drawing directory.
LASI will run under Windows by just using "Run" in the Program Manager or
by creating an automatic PIF file using "Properties". You will usually
get only 1024KB of memory if you do this. LASI will default out of XMS if
this happens.
LASI must always be run as a Full Screen program. LASI WILL NOT run
correctly in a "DOS window" that can be opened with the MSDOS icon in the
Windows Main Program Group. The mouse works differently and the graphics
fail. Press CTRL-END to exit.
It has been noticed that when run under Windows, LASI may report more or
less RAM memory than you really have. LASI uses a call to XMS services to
determine memory. When in Windows Enhanced Mode, these services are
controlled by the virtual memory manager in WIN386. If the maximum XMS
memory has not been set when the PIF file was created, Windows may report
this strangely. The memory reported may actually includes some available
disk swapping space that Windows will use, or may be just nonsense.
Command Information
Add
ADD adds an object to the drawing.
■ The object to be added is set by the OBJ command and is indicated at
the bottom of the screen.
■ A box requires two coordinate points at diagonally opposite corners.
■ A path (poly) takes a vertex from each coordinate input.
■ A path adds a new vertex after the first active vertex found in the
order in which the path is drawn.
■ A cell is added with its origin at a single coordinate point.
■ Use the TEXT command to add text to a drawing.
The cursor will indicate the adding action that will take place. For
boxes, the box outline will be shown in dots. For paths, segments will be
previewed as dotted lines (rubber bands). Cells add as a single point.
aGet
AGET (all get) is a combination of FGET and CGET.
■ This command acts on cells, boxes, paths and text in the same way as
those commands.
AGET is useful if you are MOVing, CPYing or FLPing large sections of a
drawing because you can see just which objects are active before the
operation, and unlike WGET it will not distort paths.
aPut
APUT (all put) makes all boxes, paths, text and cells inactive.
■ This command is for making sure that ALL objects are inactive.
APUT is a handy command to make objects inactive with a single mouse
button click.
Arc
ARC calls the arc generator.
Rules for making arcs:
■ An arc is generated starting at the first active vertex found on a
path, and is swung around an arc center point to an end point.
■ The radius of the arc is a linear function of the angle and the
difference in radius between the starting and end points.
■ The center and end points are single coordinate input points.
■ The number of segments and the direction of generation (cw or ccw) must
be entered when requested.
■ To start an arc from nothing you must first add a single active vertex
and then call the generator. The arc takes its width and layer from the
original path object or "arc seed".
■ Arc internal points are added on the nearest unit grid.
■ Arc center and end points are added on the nearest working grid.
When you start an arc the cursor displays one or two dotted lines (rubber
bands) which show how an arc will be added.
If you are adding an arc at the last vertex of a polygon and the center
point is being requested, the dotted line will show the radius to the
center from the starting point. When the end point is requested, the
dotted line will show the radius to the arc center of the end point.
If the active vertex is not the last vertex, an arc will be inserted into
the polygon between two vertices, and a cursor with two dotted lines will
be drawn that gives information on how the arc will be inserted.
When the center point is being requested, one dotted line will show the
radius to the center point from the starting point. A second dotted line
will be drawn from the cursor to the second vertex. This lets you know
the direction of the polygon and therefore between which poly segments
the arc will be inserted. When the arc end point is requested, the dotted
lines will show the radius to the arc center of the arc end point and the
distance of the arc end point to the second vertex.
Hints:
1. If you are generating an arc with many vertices, you can speed up the
process by pressing ESC or clicking the RIGHT mouse button, which
causes drawing to be bypassed.
2. It is easy to generate duplicate vertices when you are adding arcs to
polygons. When you are finished with one or more arcs, click the UDUP
command. This will remove any consecutive identical vertices.
Arrows
Up, down, left and right arrows pan the drawing window.
■ The drawing window is moved by a certain fraction of its width (50%) in
the arrow's direction.
■ If you pan with the ALT key down, the window moves only a small
fraction of its width (5%).
■ The display is redrawn.
The arrow keys on the keyboard perform this same function to be
consistent with other CAD systems.
Read DRAW.
Attach
ATTACH installs a cell from a common cell pool in a drawing's cell
collection.
■ ATTACH will first search to find if a cell already exists in the
drawing. If one is found you will be ask if you want to continue. If a
cell is not found, it will be immediately added to the cell collection.
■ ATTACH will turn a normal cell into an attached cell, but the attached
cell must exist in the pool directory.
■ Higher rank cells may be attached but you will only get the boxes,
paths and text of the cell, and the cell will changed to a rank 1 cell.
■ If the "pool=" parameter in FORM.DBD is missing or blank, the ATTACH
command will not work.
Read the General Information/Attached Cells topic.
Cap
CAP calls the capacitance calculator.
To measure capacitance:
1. You first must enter the capacitance units/physical area unit. This
will usually be in pF/um2.
2. After you enter the capacitance per unit area, all paths with ANY
active vertex will be measured automatically, and the total
capacitance will be displayed. To compensate for corners, half the
width is subtracted from each segment length.
3. After all paths are measured, all boxes with ANY active sides will be
measured automatically, and the total capacitance of the paths and
boxes will be displayed.
4. The command will then go into manual mode. Any polygons or areas in
cells that should be included in the capacitance can then be manually
measured.
5. When in manual mode, at the command prompt "[/]", you must fill the
area to be measured with rectangular cursor areas by clicking the LEFT
mouse button at diagonally opposite corners of the areas.
6. An area's capacitance and the sum of previous capacitances will always
be displayed at the bottom of the screen.
7. To end measuring, click the mouse on any menu button except a window
command, or press ESC.
Note: Unfortunately, at the moment, LASI does not directly measure the
capacitance of irregular areas (polygons). To measure an irregular area
you must click small rectangular areas until the total area is filled
with minimum overlaps. A measured area is indicated by a lightly dotted
fill.
This command may be used as an area parameter calculator. For example,
you can calculate the area of an integrated circuit by setting the
capacitance per area to 1.
cCel
CCEL (change cell) changes any active cells into the specified cell.
■ This command will not work in a rank 1 cell.
■ Attempting to change to an unknown cell or a cell too high in rank will
abort the command.
Cancel CCEL by pressing ENTER only or ESC.
Cell
CELL exits Cell Mode or System Mode and (re)enters Cell Mode.
From System Mode:
■ You will be asked for a cellname.
■ If a new cellname is not in the cell collection, the rank will also be
requested and you will create a new cell.
From Cell Mode:
■ The first active cell that is found in the drawing becomes the default
cellname, and you will automatically exit and reenter Cell Mode with
that cell.
■ If no default cellname is found, you will be asked for one.
■ If a new cellname is not in the cell collection, the rank will also be
requested and you will create a new cell.
In either mode, press ENTER only or ESC to the cellname or rank question
and you will go to System Mode.
Note: You can also enter Cell Mode in two other ways:
■ You can use the LIST command and click the LEFT mouse button on the
name of a cell.
■ You can go directly to a cell from DOS by typing the cellname on the
command line after "lasi" when starting the program.
CelSort
CELSORT sorts the cells in the drawing's cell list (CELLS5.DBD file)
■ The cells are sorted first into groups of increasing rank and then are
arranged alphabetically within the rank groups.
■ If you are using the RAM drive for your temporary cell files, these
files become invalid and have to be "relearned" by drawing the cell
once. This is all automatic.
■ Sorting can take a minute or so on a slow computer ... be patient.
Important: DO NOT interrupt the sorting (by rebooting) because the cell
pointers may be corrupted and you will have the wrong cells appearing
in other cells. This can be fixed by using the CCEL command, but it can
take a while.
cGet
CGET (cell get) makes cells active.
■ A cell can be made active in two ways:
If the rectangular cursor window completely encloses the cell's area,
the cell will become active.
If the LEFT mouse button is double clicked while making the cursor
window, a cell will become active if the cells's area overlaps the
cursor window. This does not work if the cell is drawn only as an
outline.
■ An active cell turns bright white on all layers.
■ An active cell drawn as an outline turns bright white and is filled
with dots.
■ There is no dependence on VIEW or OPEN.
■ If a cell is not found in the cursor window, a cellname will be asked.
Note: If a cell is in outline, only the first method above will work,
unless you press and hold CTRL when using the mouse.
CGET only works on the top level of cells and has no effect on boxes,
paths or text.
Clrs
CLRS (colors) enters into the Layer Attribute Display and allows the
color of a layer to be set.
■ The number of the layer is shown in the layer's color.
To exit, press ESC to the "Color Layer" question.
cLyr
CLYR (change layer) changes the layer of boxes, paths or text.
■ If the value entered is not 1 through 64, the layer will be reasked.
■ Boxes must have ALL sides active to change layer.
■ Paths must have ANY vertex active to change layer.
■ Text will change layer if active.
Read LAYR.
cMov
CMOV (cell move) moves cells directly.
■ A cell can be moved in two ways:
A cell will be moved if the rectangular cursor window completely
encloses the cell's area.
If the LEFT mouse button is double clicked while making the cursor
window, the cell will be moved if the cell's area overlaps the cursor
window. This does not work if the cell is drawn only as an outline.
■ The first two cursor points form the cursor window.
■ The next two cursor points determine the distance to be moved.
■ The move part of the command accepts a single PKE distance entry.
CMOV only works on the top level of cells and has no effect on boxes,
paths or text.
Cntr
CNTR centers the drawing window.
■ The new center is a single point input from the mouse or a PKE
coordinate entry.
■ The display is redrawn.
Read DRAW.
Copy
COPY allows NORMAL cells to be copied or appended to other NORMAL cells.
Rules for COPYing:
■ The source cell must be a NORMAL cell (not attached) in the drawing
cell collection.
■ If the destination cell has a NEW NAME, a new cell will be created.
■ If the destination cell already exists, the source cell will be
APPENDED to the existing cell.
■ If either the source or destination cells are attached cells, the
command will abort.
Inter-rank copying is permitted. If the source cell contains cells that
have rank equal to or greater than the destination cell, those cells will
not be copied. Boxes, paths and text are always copied.
Appended objects appear as active objects in the destination cell. This
allows you to move the appended parts if they overlay any previous
objects.
If the source or destination cells are incorrect, or if copying will
overflow the maximum number of any objects, the copy operation will be
cancelled and a message will be shown.
Since COPY may be used to append to existing cells, it may be used as a
means to copy parts of one cell into another. This is done by first using
the MAKE command to create a temporary cell. Read the MAKE command topic.
Also read the IMPORT command topic.
cPut
CPUT (cell put) makes cells inactive.
■ A cell can be made inactive in two ways:
If the rectangular cursor window completely encloses the cell's area,
the cell will become active.
If the LEFT mouse button is double clicked while making the cursor
window, a cell will become active if the cells's area overlaps the
cursor window. This does not work if the cell is drawn only as an
outline.
■ This the inverse of CGET, and just works inversely.
■ If a cell is not found in the cursor window, a cellname will be asked.
Note: If a cell is in outline, only the first method above will work,
unless you press and hold CTRL when using the mouse.
Read APUT.
Cpy
CPY copies active objects.
■ The displacement is determined by a 2-point coordinate input.
■ The original objects are made inactive and the copies are made active.
■ Boxes are copied if ALL sides are active.
■ Cells are copied if they are active.
■ Vertices of paths are copied only if they are active. To copy a path
completely it must be fully active (use FGET). This feature allows you
to copy sections of paths.
■ Text is copied if it is active.
■ CPY accepts a single PKE distance entry.
Read STEP.
Cut
CUT breaks a path into two separate paths at an active vertex.
■ This command works if there is ONLY ONE active vertex.
■ The last vertex at the cut point of the newly created path is made
active.
Use this command to break paths and polygons into smaller segments to
create new constructions, and to make shorter paths and polygons that
will be more manageable for translation into other CAD systems.
cWSz
CWSZ (change width and size) changes the WIDTH of paths and the SIZE of
text.
■ Paths with ANY vertex active will change width.
■ Any active text will change its size, and the text size will be
adjusted so that it is a integer multiple of 15 basic units.
CWSZ can be used to change the end types of paths. Positive width causes
a path to have an INLINE end, with the vertex is on the end face. A
negative width gives the path an EXTENDED end, with the end face extended
half the width out from the vertex.
When the width of a path is changed, the position of the end faces
remains constant. This prevents gaps or overlaps when path widths are
changed.
Important: CWSZ has a path end type changing feature. Typing in "+*" or
just "*" for the new path width changes ALL active paths to INLINE end
types, but keeps the absolute value of the width. Typing "-*" changes
all active paths to EXTENDED end types, but keeps the width. When the
end types are changed, the position of the end faces stays the same.
This is very useful if you want to change all paths (with different
widths) in a drawing from one end type to the other.
Read WDTH and TSIZ.
Dash
DASH enters into the Layer Attribute Display and allows the type of dash
to be set for a layer.
■ The pattern of the dash number is shown by the sample lines.
■ The dash number of the layer is shown above the corresponding colored
layer number.
■ Typing "n" ENTER, will turn off all dashes until DASH is called again.
To exit, press ESC to the "Dash Layer" question.
Del
DEL deletes objects or parts of objects.
■ An object's layer must be viewed and opened to be deleted.
■ Boxes are deleted if ALL sides are active.
■ Active vertices of paths are deleted.
■ Paths with ONE or NO vertices on any layer are deleted.
■ Text is deleted if it is active.
■ Cells that are active are deleted without regard to the layers that
they contain and the setting of the VIEW and OPEN commands.
Notes:
1. Using DEL does NOT give back actual memory that has been allocated by
the memory manager. If you make a large number of deletions and want
to free memory, exit the current cell and then reenter it. The easy
way is to use LIST and click on the current cell marked with the "*".
2. When paths are deleted, the vertex data is resorted and condensed so
that there is more space available for new paths. Doing this takes
time. Expect a long delete time on cells that have a huge number of
vertices. Be patient and watch the percent indicator.
Important: Before any object is deleted, the hard disk files DSSBKUP.BP5
and DSSBKUP.CL5 are updated. If you make a mistake and delete the wrong
thing, you can use the UNDO command to restore the drawing.
dGrd
DGRD (dot grid) steps through the list of dotted grids.
■ The dot grids should have been entered using the SET command.
■ The present dot grid will be shown at the bottom of the screen.
■ Each cell rank may have a different grid from the list of grids.
Note: DGRD when assigned to a function key accepts a numerical argument.
For example, a parameter in the FORM.DBD file "fkey=dgrd,10" assigns a
function key so that when the key is pressed the dot grid is set to 10
physical units. However, if "fkey=dgrd" is the parameter, you will be
prompted for a dot grid to be set.
Read SET and the General Information/Form File topic.
DOS
DOS temporally runs other programs from the DOS command line.
■ At least 64KB of memory must be available for this command to work.
■ The DOS command from System Mode makes more memory available than the
DOS command from Cell Mode because System Mode deallocates drawing
space. If you use too much memory you may get an "Not Available"
message.
■ Certain DOS command line operations may be done, DIR for example.
■ Certain small programs may be run if they can load into available
memory.
DO NOT run LASI utility programs from this command since the drawing
information may not be current on the hard disk.
Dpth
DPTH sets the depth level to which nested cells are fully drawn.
■ The first level of cells greater than the depth is drawn as dotted
outlines.
■ The depth may be set at any level between 0 and 15.
■ Setting depth to 0 causes the first level of cells to be drawn as
dotted outlines.
■ Setting depth to 15 allows all levels of cells to be drawn fully.
Notes:
1. If a cell on the first level is drawn as a dotted outline due to the
depth being set to 0, it is NOT an outlined cell and may be edited
just like it was a fully drawn cell.
2. Depth of cell nesting is not to be confused with a cell's rank. The
rank of a cell determines how deeply cells can be nested within that
cell. The depth is how far down in the nesting levels the occurrence
of a cell is found. The depth of a nested cell can be no deeper than
the current cell's rank minus the nested cell's rank.
Hint: If you want to be sure you are drawing all cells, set DPTH to the
current cell's rank.
Draw
DRAW erases the drawing window and redraws the current cell.
■ Drawing of boxes, paths and text takes place in ascending layer order.
■ In each cell nesting, lesser cells are drawn starting at the lowest
rank and are overlayed upward.
■ The boxes, paths and text of the current cell always overlay all layers
of any lesser cells.
■ Clicking the RIGHT mouse button (or pressing ESC) while cells are being
drawn aborts full drawing of any remaining cells and draws only a
dotted outline.
■ Clicking the RIGHT mouse button (or pressing ESC) while boxes, paths or
text are being drawn aborts further drawing.
Notes:
1. If a cell's objects exceed the memory available, or if a cell's BP5 or
CL5 files are missing, a dotted outline with the cell's name in the
lower left corner will be drawn to indicate that there is something
that can't be drawn.
2. Paths with widths near the unit grid limit may appear distorted. This
is because all drawing points are set in the unit grid.
3. If you try to draw a path or poly with a vertex count exceeding the
limits of 250 and 500 respectively, the path or poly may not draw
completely or fill correctly, but drawing will fail gracefully.
Read the General Information/Toggle Buttons, Key Assignment and Drawing
Speed topics for useful information.
fGet
FGET (full get) makes a box or path fully active.
■ A box is made fully active if ANY side is made active.
■ A path is made fully active if ANY vertex is made active.
■ FGET is the same as GET for text.
■ This command allows the entire box or path to be operated on by any
subsequent command if only a part is accessible.
If you want to delete a box or path completely use this command first.
Fill
FILL enters into the Layer Attribute Display and allows the type of fill
to be set for a layer.
■ The pattern of the fill number is shown by the sample boxes.
■ The fill number of the layer is shown above the corresponding colored
layer number.
■ Boxes, paths, closed polygons and closed text will be filled with the
chosen fill pattern.
■ The fill of all layers may be temporally turned off by typing "n" ENTER
to the "Fill Layer" question. Calling FILL again will turn the fill
back on.
■ All layers may be temporally set to solid fill by typing "s", ENTER to
the "Fill Layer" question. Calling FILL again will set the fill back to
normal settings.
To exit, press ESC to the "Fill Layer" question.
Fit
FIT sets the size of the drawing window so that it will show all of the
objects in a cell.
■ There is no dependence in VIEW or OPEN.
■ The display is redrawn.
■ If there are no objects present, fit will expand the drawing area to
the maximum size permitted or the whole "universe".
Read DRAW and the General Information/Universe topic.
Flp
FLP flips objects.
■ Flipping in either X or Y determined by a 2-point coordinate input.
■ The larger dimension of the cursor input determines the flip axis.
■ The cursor will show the approximate flip axis.
■ Boxes flip if ALL sides are active.
■ ALL vertices of a path flip if ANY vertex is active.
■ Text will flip if active.
Note: FLP and ROT do no commute. That is, the order in which these
commands are used is important. Objects FLPed and ROTed in different
orders are not the same.
Read ROT.
Form
FORM lists the contents of the FORM.DBD file.
■ The FORM.DBD file is read just as it is written but omits function key
definitions.
■ The commands that have been assigned to the function keys are listed
with their corresponding key.
■ Press ESC or click the RIGHT mouse button to continue to the next page
or to exit.
Read the General Information/Form File and Key Assignment topics.
fPut
FPUT (full put) makes boxes, paths and text fully inactive.
■ This is the inverse of FGET.
■ A box is made fully inactive if ANY side is made inactive.
■ A path is made fully inactive if ANY single vertex is made inactive.
■ FPUT is the same as PUT for text.
Use this command to make fully inactive a box or path when only a part of
the box or path is displayed.
Full
FULL removes cells from being drawn as an outline.
■ Cells are changed from being drawn as an outline if a cell's area is
completely enclosed by the rectangular cursor window.
■ If a cell is not found in the cursor window a cellname will be asked.
Note: You can bypass enclosing the outline completely by holding down the
CTRL key.
Read OUTL.
Get
GET makes single parts of boxes and paths active.
■ The layer must be viewed and opened.
■ Box sides are made active if they intersect the rectangular cursor
window.
■ Path vertices are made active if they intersect the cursor window.
■ Text is made active if its reference point intersects the cursor
window.
When made active:
■ Box sides turn bright white.
■ Vertices are marked and segments of paths that will move as a unit turn
bright white.
■ Text turns bright white.
GET is the default command when LASI is started.
Grid
GRID toggles the dot grid on and off.
■ The menu button intensifies to indicate that the grid is on.
■ The dot grid will not be drawn if the spacing is less that the drawing
resolution set using the SET command.
Read SET and DGRD.
Hcpy
HCPY redraws to full screen size and calls a program that prints a bitmap
hardcopy of the screen.
The name of the hardcopy program must be set in the "hcopy=" parameter in
the FORM.DBD file.
After the screen redraws:
■ Press ENTER if you want to add the name, date and time to the screen
and start a hardcopy.
■ Press CTRL-ENTER if you want to make a hardcopy of the screen without
the name, date and time.
■ Press ESC anytime if you want to abort hardcopying.
Note: Hold down a CTRL key when you click the HCPY button if you want
layers to be drawn in descending (64 -> 1) order.
Read the General Information/Hardcopy and Form File topics.
Info
INFO identifies an active object or gives drawing information.
■ Objects are taken in the order: box/path/cell.
■ Only the first active object found is reported.
■ For a box the layer is shown.
■ For a path the layer and the width are shown.
■ For text the layer and size are shown.
■ For a cell the name, number, position and orientation are shown.
■ No active object gives tells the amount of memory that is still free.
Read SHOW.
Import
IMPORT allows ATTACHED cells to be brought into a drawing as NORMAL
cells.
Rules for IMPORTing:
■ The source must be an ATTACHED cell in the drawing cell collection.
■ If the destination cell has the SAME NAME as the source cell, the cell
becomes a NORMAL cell and replaces all occurrences of its use in all
other cells.
■ If the destination cell has a NEW NAME, a NEW NORMAL cell will be
created with the new name.
■ The destination will always become a rank 1 cell.
■ If the source cell is not attached, the destination cell is already
present or is an attached cell with a different name, the command will
be aborted.
■ Cells never export back to the pool.
If imported to the SAME NAME, a BP5 file will be copied from the pool to
the drawing directory. You would use this procedure if you want to
replace all occurrences of an attached cell in other cells with a normal
cell that may be modified. You can then RENAME the normalized cell, and
ATTACH the original cell again to make other modified versions.
If the destination has a NEW NAME, a new normal cell will be created and
the attached cell will remain unaffected. You can then modify the new
cell and use it where desired.
Notice that the difference between these two procedures is that in the
first procedure the attached cell is replaced automatically wherever it
is used. In the second procedure you generate an independent cell and you
must replace any occurrences of the attached cell individually.
If the source or destination cells are incorrect, or if importing will
overflow the memory available, the import operation will be cancelled and
a message will be shown.
Read COPY.
Join
JOIN connects two paths head to tail to form a new single path.
Rules for JOINing:
■ This command works only if there are exactly two active vertices which
are the beginning and end of a path.
■ If the active vertices are beginning and end of the same path and the
path is not already closed, a segment will be added to close the path
and both vertices will be made inactive.
■ If the active vertices are beginning and end of different paths and the
vertices are at the same location, the paths will be merged into a
single path, one vertex will be deleted, and one vertex will be made
inactive.
■ If the active vertices are beginning and end of different paths and the
vertices are at different locations, a segment will be added, the paths
will be merged into a single path, and both vertices will be made
inactive.
Use this command to condense paths to reduce data, and to make closed
polygons out of open polygon segments.
Kill
KILL removes a cell from the drawing.
All Cells with rank greater than 1 are first checked for the cell to be
KILLed. If any cell contains the cell, you will be asked if you want to
continue.
When KILLed:
■ Cells are removed from the drawing's cell collection.
■ Cells are removed from any other cells.
■ The cell internal files at the DOS system level are erased.
Important: It is recommended that you keep an archive of your cells using
the TLCOUT.EXE utility program. This is the only way that you can
recover a cell that has been accidentally KILLed.
Layr
LAYR sets the default layer of boxes and paths to be added.
■ If in numbered layer mode, and the value entered is not 1 through 64,
the layer will be reasked with the default in the white box..
■ If the Layer Table is on, click the layer button to set a new layer.
Read CLYR.
lDrw
LDRW (layer draw) redraws only one layer of the drawing.
■ If the Layer Table is used, click the LEFT (or RIGHT) mouse button on
one of the layer buttons.
■ If numbered layers are used, enter a layer from 1 to 64.
This command is useful with solid fills. It shows about what a mask will
look like, and usually makes errors easier to spot.
Read DRAW, SDRW and RDRW.
List
LIST lists the cells in the cell collection.
■ This command appears in both System and Cell Modes.
■ The mouse will also be active and the cursor can be positioned on the
name of any of the cells listed. If the LEFT mouse button is clicked on
the cellname, Cell Mode will be entered for that cell.
■ Clicking the LEFT mouse button in a location that will not select a
cell will step to the next page or will exit to the present mode.
■ Pressing ESC or clicking the RIGHT mouse button will step to the next
page or will exit to the present mode.
■ Attached cell names appear in red in the cell list.
The list of cells has a history feature. The number that appears in front
of a cellname indicates the inverse order in which the cells were last
opened. That is, number 1 is the last cell you worked on, number 2 the
second to last, and so on. This allows you to go through a sequence of
deeply nested cells, and then randomly return to a higher ranked cell.
Rules for cell history:
■ If a cell is opened again, previous events for that cell are purged
from the history.
■ An asterisk indicates the current cell.
Hint: LIST is the fastest way to change from cell to cell because you
don't have to type or even precisely remember a cellname.
Make
MAKE makes a new cell from the active cells, boxes, paths and text.
Rules for MAKE:
■ Boxes, paths and text are copied if ANY part is active.
■ The rank of the new cell will be one higher than the highest rank of
any active cells.
■ The name must not already be in the cell collection. If it is, the
prompt will be reasked. No name at all or ESC will cancel MAKE.
Note: When MAKE makes a new cell it first determines the area or outline
of the current cell on which you are working. It then uses this area as
the area of the new cell. It also uses the current origin as the origin
of the new cell. Normally, you will enter into Cell Mode with the new
cell and reposition the origin with the ORIG command. When Cell Mode is
then exited the correct area will be recalculated.
Hint: When MAKE is used to create a new cell, its name is at the end of
the cell list. Use LIST to go to the new cell to make any changes.
MAKE can be used to copy all or part of one cell to another cell. First
make a temporary cell and then go to System Mode and COPY the temporary
cell to the destination cell. When you enter the destination cell the you
will find the temporary cell appended to it. You can later KILL the
temporary cell. Notice that you are in effect placing all or part of a
cell on a "clipboard" and then inserting the objects on the clipboard
into another cell. This is a common procedure used with many types of
data transfer.
Mov
MOV moves the active sides of boxes, active vertices, active text and
active cells.
■ The distance is determined from a 2-point coordinate input.
■ The cursor will show the approximate move.
■ MOVs are always done in multiples of the working grid, unless you press
the A or ALT keys to switch to the unit grid.
■ MOV accepts a single PKE distance entry.
Read WMOV, QMOV and CMOV.
Obj
OBJ sets the name or type of object to be added.
■ Entering "b" will make boxes and "p" will make polygons and paths.
■ For adding a cell give the NAME of the cell.
Note: Boxes, paths and cells are treated equally as far as adding is
concerned. However, boxes, paths and text are "basic" objects while
cells are compound objects. Generally, there are different commands for
these different types of objects.
Open
OPEN sets the layers that can have their boxes, paths and text made
active.
■ Boxes, paths and text that are not opened are blocked from the GET,
FGET, WMOV, QMOV, PBEG and PEND commands.
■ Cell commands like CGET, CPUT or CMOV are not affected.
■ Each cell rank may have different OPEN parameters.
OPEN works differently depending on whether the Layer Table is on or off.
Layer Table OFF:
OPEN accepts layer inputs that can be single layer numbers in any
order, or a dash (-) can be used to indicate all inclusive layers
between the end layers. A dash alone will give all layers from 1 to 64.
Layer Table ON:
Individual layers can be opened or closed by clicking the mouse on the
layer button (defined in FORM.DBD). The button brightens if on.
Note: CTRL-ENTER toggles the Layer Table on and off.
Read VIEW.
Orig
ORIG relocates the coordinates of all objects in a cell drawing so that
the single cursor input point is the 0,0 position.
■ This command allows objects to be constructed almost anywhere on the
drawing window and then be repositioned as desired.
■ The working grid is the default grid, but may be changed to the unit
grid with the A or ALT keys.
Set you cell origin as soon as you make a cell, or you may have to
relocate the cell each time it is used in higher ranking cells.
Outl
OUTL sets cells to draw as an outline.
■ A cell can be turned into an outline in two ways:
Cells are changed to outlines if a cell's area is completely enclosed
by the rectangular cursor window.
If the mouse is double clicked while making the cursor window, cells
will be outlined if the cell's area overlaps the cursor window.
■ An outlined cell will be drawn as a white rectangle with the name of
the cell in text in the lower left corner. An active cell in outline
will be drawn as a bright white rectangle filled with dots.
■ The cell's name can be toggled on and off by pressing the N key. An
intensified "N" displayed in the upper right of the screen indicates
that names are ON.
■ If a cell is not found in the cursor window a cellname will be asked.
You can greatly speed up an overall redraw by setting the cells in an
region where you are not currently working to outline. When a cell is set
to outline, retrieval of the cell's files from a disk is unnecessary and
drawing the internal parts of a cell is skipped.
Read FULL.
OvSz
OVSZ (oversize) expands the sides of boxes, paths and closed poly by a
certain distance.
Rules for OVSZing:
■ A negative distance shrinks the sides.
■ Only active box sides are oversized.
■ All sides of paths or closed polygons are oversized if ANY vertex is
active.
■ The oversizing algorithm used must identify a polygon as having a
rotational angle of +/-360 deg. If this cannot be done, the poly will
be unchanged.
■ If a poly contains adjacent sides that are folded back 180 deg on each
other, the results will be undefined since the direction of folding
cannot be identified.
Note: Acute angles on closed poly are not oversized correctly. You need
to insert an additional vertex at an acute angle to prevent the peak of
an acute angle from extending beyond the oversize distance.
Read RESZ.
pBeg
PBEG (path beginning) makes the first vertex of a path active.
■ This command works if ANY vertex of a path intersects the rectangular
cursor window.
■ PBEG is useful when the JOIN command is to be used.
Read PEND.
pEnd
PEND (path end) makes the last vertex of a path active.
■ This command works if ANY vertex of a path intersects the rectangular
cursor window.
■ This command is useful both to find the end of a path and to reopen a
closed path.
Read PBEG.
Plot
PLOT calls the plotting program.
■ The plotting program is named in the FORM "plot=" parameter.
■ A plot will be made of the last cell as it was shown in the drawing
window.
■ The cellname, the drawing window center X,Y and width, and the viewed
layers are passed to the plotting program.
Notes:
1. All plotting programs can rotate 90 deg. If you use the PLOT command
with the "Rotate" set in the plotter program, you might get a plot
that could be drawn at a larger scale. The reason for this is that
LASI passes the dimensions of the drawing area, which is wider than it
is high. When rotated it is fitted to the narrower dimension of the
plot paper. To make a largest scale plot of a overall cell just press
the "Fit" key in the plotter program.
2. It is slightly possible that you will not have enough contiguous
memory available to run a plot program from LASI. If this happens, the
program will not execute and you will return to LASI. To improve this
situation remove or move to high memory any unnecessary resident
drivers (TSRs), if they are being kept in conventional memory . If
this fails, run the plotting program by itself. Read the help on any
plotting program for how to do this.
pRev
PREV (path reverse) reverses the order of the vertices in a path.
■ ALL paths that have ANY active vertex will be reversed.
■ The original active vertex remains active.
Reversing the order allows vertices to be added to either the beginning
or end of a path. It also allows paths to be JOINed properly.
Put
PUT makes single parts of boxes, paths and text inactive.
■ This is the inverse of GET and works the same way.
Read FPUT and APUT.
qMov
QMOV (quick move) functions like the sequence GET, MOV, PUT.
■ Box sides are moved if they INTERSECT the rectangular cursor window.
■ Vertices of paths move if they intersect the cursor window.
■ Text is moved if the reference point intersects the cursor window.
■ Box, path and text layers must be viewed and opened.
■ The move part of this command accepts a single PKE distance entry.
QMOV is useful for making small vertex movements and small box side
movements when the path or box is only partly accessible.
Read WMOV.
Quit
QUIT exits from the LASI drawing system to DOS.
■ All current information about the drawing is saved on the hard disk in
the drawing directory.
■ The condition of DOS when LASI was entered is restored.
The drawing may be reentered by running LASI.EXE again. However, the
cells that may have been stored on a RAM drive will be unknown to LASI
and will have to be relearned by drawing them once.
CTRL-END has the same effect as QUIT.
ReName
RENAME changes the name of a cell.
■ Cellnames must conform to DOS filename rules.
■ This command will not work if the new name is the name of a cell that
already exists in the cell collection or is a reserved name such as "b"
or "p".
To give a cell another cell's name in a cell collection, you must first
RENAME or KILL the original cell and then RENAME the cell.
ReRank
RERANK changes the rank of a cell and adjusts all other cell ranks.
The command works in two ways depending on the cellname:
If the name if a cell is given as "*", ALL cells will be checked and
the LOWEST possible rank will be assigned to them.
If the NAME of an actual cell is given, a NEW RANK for that cell only
will be requested. ALL cells will then be checked, and new ranks will
be assigned according to nesting and the NEW RANK of the NAMED cell.
Cells that do not contain the NAMED cell will be unaffected.
Rules for Reranking:
■ If a NEW RANK is less than or equal to the rank of any lesser cells
within the named cell, the new rank will only go down to one higher
than the rank of any lesser cells.
■ Attached cells may not be reranked.
■ When you rerank, a backup of the list of cells is made. If reranking
fails, for example, if ranks are forced to exceed 15, the original
ranks will be restored.
■ If you manage to bring a cell into the drawing that has lesser cells
with rank greater than or equal to the cell's rank (possibly by using
TLC) the lesser cells will draw as dotted outlines. Using RERANK should
fix this problem.
■ Any CL5 files of cells are preserved, except if a cell is rank 1 and
the cell has no cells (i.e. it has a null CL5 file). Then, if you enter
and exit Cell Mode with that cell, the CL5 file will be erased. This is
to keep you from cluttering your drawing directory with null files.
■ Reranking can take a minute or so because multiple passes are made
reading the CL5 files on the hard disk. Wait for the "Done!"
Res
RES calls the resistance calculator.
To measure resistance:
1. You first must enter the sheet resistance in resistance units/square.
This will usually be ohms/square.
2. You will next be asked for the End Compensation. This is the number of
squares to be added or subtracted to compensate for any effects of
resistor heads. This depends on how you draw your resistors and can be
a fractional number.
3. After you enter the sheet resistance, if a path with ANY active vertex
is found, the path will be automatically traced from beginning to end
and the total resistance will be displayed. If a SEGMENT is active
(displayed in bright white) it will be summed into the resistance,
otherwise, it will not be counted. To FULLY measure a resistor, use
FGET on it.
If automatically measured:
If a path has zero width (poly), one physical unit of width will be
the default, and the length of the segments will be measured.
To compensate for corners, half the width is always subtracted from
each segment length unless the path has zero width.
4. After a SINGLE path is measured the command will enter manual mode.
5. If no path has been found, you will have to manually enter the
resistor width, otherwise, the path width is taken as the resistor
width.
6. In manual mode, at the "<-->" command prompt, the width of the
resistor must be measured by a 2-point coordinate input or a single
PKE distance entry.
7. At the command prompt "R-->", you can then calculate resistance by
making 2-point coordinate distance measurements along the length of a
resistor. The distance will be displayed by a dashed line, and the
incremental resistance and the total resistance will be displayed at
the bottom of the screen.
8. To end measuring, click the mouse on any menu button except a window
command, or press ESC.
Note: To automatically measure a path, it must be a path in the present
cell. Paths that are visible but are part of a cell within the present
cell must still be manually measured.
This command can be used as a ratio parameter calculator.
For example, to measure the perimeter of a complex polygon, make it fully
active and let RES measure its total length. Make any segments inactive
if you don't want them included.
To measure a MOS gate size, set the sheet resistance to 1 and measure the
gate width as the resistor width and the gate length as the resistor
length.
ReSize
RESIZE multiplies the basic units of all the position data in a cell.
■ To change a single cell give the name of the cell.
■ To change ALL cells in a collection give the name as "*".
■ Changes are limited to multipliers of 0.1 to 10 at a time.
Use this command to change old LASI drawings made by LASI 4.X to higher
resolution in LASI 5.1.
rDrw
RDRW (reverse draw) redraws the drawing with the layers in descending
order.
■ This draws layers sequentially in reverse (64 -> 1).
■ This draws only viewed layers. To speed up drawing, only VIEW layers
that you want to see. Using the Layer Table works nicely.
This command is useful if you want to overlay solid fills so that objects
that would normally be covered by higher layers remain visible.
Read DRAW and SDRW.
ReSz
RESZ (resize) changes the size of boxes and paths while still preserving
their shape.
■ The multiplier is 1 for no change, and is limited to >=.01 to <=100.
■ The geometric center of the box or path is kept constant.
■ If a small path is resized or if it is made too small, it may change
shape due to the limited resolution of the unit grid.
■ RESZ acts on boxes with ANY side active or paths with ANY vertex
active.
Use RESZ to make different sizes of complex figures to save drawing time.
Read OVSZ.
Rot
ROT rotates objects.
■ Rotation is around a single cursor input point.
■ Boxes, text and cells rotate +/-90, 180 deg.
■ Paths rotate through any angle.
■ Boxes rotate if ALL sides are active.
■ ALL vertices of a path rotate if ANY vertex is active.
■ Text and cells rotate if they are active.
Note: Sometimes a rotated path may not be exactly identical to an
original if it has been rotated and then rotated back. This is caused
by rounding coordinates to the unit grid each time a rotation is done.
Read FLP.
Rstr
RSTR restores a drawing window.
■ RSTR does not accept keyboard entries in the usual way, that is,
terminated by ENTER. It requires only a number key to be pressed.
■ Only the keys 0-9 will execute the command, otherwise the window number
will be reasked.
■ Window 0 is always the previous window.
■ Windows 1-9 should have been saved using the SAVE command.
■ The restored drawing window is immediately redrawn.
■ Press ESC to abort RSTR.
Note: RSTR has a LAST WINDOW FEATURE. Whenever a window is changed, the
previous window remembered. Reclicking the LEFT (or RIGHT) mouse button
will cause the original window to be restored.
Save
SAVE saves a drawing window.
■ The windows are numbered 1-9.
■ SAVE does not accept keyboard entries in the usual way, that is,
terminated by ENTER. It requires only a number key to be pressed.
■ Only the keys 1-9 are acceptable window numbers, otherwise, the window
number will be reasked.
■ Press ESC to abort SAVE.
The windows saved are global, that is they are independent of the Cell
Mode rank that you are in. The windows are stored in the CONSTS5.DBD file
when you quit LASI, and are returned when you rerun the program.
Scale
SCALE is used to set the name of the physical scale units of the drawing
and the number of basic units per physical unit.
Rules for setting scales:
■ The scale units name can be anything, but for integrated circuits "um"
and "mil" are preferred because some utility programs use these units.
■ Only the first 5 characters will be accepted for the scale name.
■ The number of basic units per physical unit will usually be an integer
greater than 1, but fractional scales are permitted.
The scale that is set by this command really only relates the basic units
in which a drawing is internally done to the inputs that you give to
certain questions and to dimensions that you see externally. All inputs
and outputs are converted by the scale to and from basic units.
LASI 5.1 should have plenty of basic units for any IC to be drawn. It is
then somewhat more convenient to set the number of basic units/physical
unit first. For example, setting the basic units to 20 or 0.05um
resolution results in a "universe" of 838,861um or a little less than a
meter.
You should only use as fine a resolution that you really need, which is
usually limited by your mask pattern generator anyway. If you use too
much resolution you will slow down some of the LASI utility programs
(LASICKT.EXE for example) that work at the basic unit level.
sDrw
SDRW (sequential draw) redraws the drawing with the layers in ascending
order.
■ This draws layers sequentially. (1 -> 64) without regard to cell
nesting.
■ This shows overlays correctly, but is usually much slower than DRAW.
■ This draws only viewed layers. To speed up drawing, only view layers
that you want to see. Using the Layer Table works nicely.
This command is useful if you want to overlay solid fills so that you can
check coverage by higher layers.
Read DRAW and RDRW.
Set
SET allows you to change certain parameters and the actions of certain
commands.
Presently these parameters can be set:
■ The Resolution of the drawing.
Resolution = size of drawing window / minimum size of figure.
Resolution affects the following:
Boxes are not drawn if both dimensions are less than the minimum size.
Paths or poly are not drawn if the distance from the minimum vertex to
the maximum vertex in both dimensions is less than the minimum size.
Paths are drawn as lines if their width is less than the minimum size.
Text is not drawn if its size is less than the minimum size.
The dot grid is not draw if its spacing is less than the minimum size.
Cells will not be expanded but will be drawn as a dotted outline if the
outline dimensions are less than some multiple of the minimum size.
Note: Normally, a resolution of 250-500 is about right for standard VGA.
Usually there is no need to make the resolution greater than the number
of pixels across the drawing window. Occasionally, some small figures
may disappear if the resolution is too low. If this is a problem set
the resolution higher.
■ The Text Spacing Ratio. This is the fraction of the text character
field by which characters are spaced. This is limited between 0 and 1.0
at discrete intervals. Setting this to 0.2 is about right.
■ The number of Double Click Ticks that determine the mouse button double
click interval. The number is an integer and is clamped between 0 and
32767. A tick is about 1/20 sec.
■ The number of Position Report Ticks that determine how often cursor
position reports are made in Cell Mode. The number is an integer and
will usually be set 0 to 10.
■ The Mickey Multiplier or mouse sensitivity for the x and y-axes
respectively. Set these numbers to whatever feels best with your mouse.
The range is .1 to 10; 0 defaults to 1.
■ The Auto Backup Time. The time before an automatic SORT and backup
takes place can be set. The time can be from 1 to 32767 minutes.
■ The number of Working Grids that you intend to use can be set so that
you won't have to step through extra working grids with the WGRD
command.
■ The Size of the Working Grids in physical units can be set. You must
enter all the grids, but pressing ENTER or ESC keeps the default value
in the white box.
■ The number of Dotted Grids that you intend to use can be set so that
you won't have to step through extra dot grids with the DGRD command.
■ The Size of the Dot Grids in physical units can be set. You must enter
all the grids, but pressing ENTER or ESC keeps the default value in the
white box.
Press ESC to exit SET anywhere in the sequence.
Show
SHOW gives information about an object.
In System Mode, SHOW gives the following information about a cell:
■ The cell's rank, number in the cell collection and if it is attached.
■ The cell's outline boundaries as found in the cell collection list.
■ The number of cells, boxes, paths (includes text) and vertices in the
cell.
■ A listing of the named cell's lesser cells.
■ The number of boxes and paths (includes text) on the layers.
In Cell Mode, SHOW gives information on the first active object that it
finds in the order. box/path/cell:
■ For a box, the positions of the sides and the layer are shown.
■ For a path, the vertex positions, the layer, the width and an active
vertex mark "*" are shown.
■ For text, the reference point, the layer, the size and the characters
will be shown.
■ For a cell, the information is similar to the System Mode SHOW, but
also includes the position and orientation of the cell.
■ No active object gives the amount of memory still free.
Press ESC or click the RIGHT mouse button to continue or exit from SHOW.
Smsh
SMSH smashes any active cells, text or boxes into their component objects
and adds them to the current cell. The original active objects are
deleted.
Rules for Smashing:
■ Cells are smashed down one rank at a time. You may have to do multiple
smashes if you want to reduce higher rank cells all the way to boxes,
paths and text.
■ Text is smashed into poly objects that replace the original text. These
poly are the same as any other poly, and may be rotated to any angle or
given width to make paths. Smashing text can increase the number of
paths and vertices considerably if you are not careful.
■ Boxes must have all sides active. A box will be replaced by a five
vertex polygon with the same dimensions.
Note: If you try to SMSH any object that will cause any of your object
limits to be exceeded, or if you run out of memory, the object will not
be smashed but will remain intact and active. You will get a message
for each object component that cannot be added. If you are smashing
text or boxes you may get a partial poly conversion, but the original
object will remain.
Important: Before any object is smashed, the hard disk files DSSBKUP.BP5
and DSSBKUP.CL5 are updated. If you make a mistake and smash the wrong
thing, you can use the UNDO command to restore the drawing.
Sort
SORT sorts and stores a backup of the drawing.
■ Boxes, paths and text are sorted into 16 zones over the area of a cell.
■ Cells are sorted by their position in the CELLS5.DBD file.
■ BP5 and CL5 files of the current cell are updated on the hard disk.
■ The backup files SORTBKUP.BP5 and SORTBKUP.CL5 are updated on the hard
disk. If the UNDO command is used, these may be used to restore the
cell to what it was when the last SORT was done.
You may stop a long sort by pressing the SPACE bar. Eventually, when
objects are in good order, sorting will be fast.
SORT also moves objects that have been accidentally moved out of the
maximum drawing area (universe) back into the drawing. This is done by
adding or subtracting the maximum window width until the objects
coordinates are in the drawing. Boxes and paths can be distorted by this
operation and will have to be repaired or deleted.
Note: The SORT command will be executed automatically if you do not click
either mouse button before the Auto Sort Time times out. This feature
protects your drawing if you leave it unattended. The Auto Sort Time
can be set using the SET command.
Hint: Sorting should be done periodically while working on a drawing.
This not only cleans out any defective objects, but also improves
drawing speed by ordering the cells.
Snap
SNAP moves box sides, vertices and cells to the nearest exact grid.
■ The grid will be requested in physical units at the bottom of the
display. Press ESC to abort.
■ The default grid is always the minimum grid, so that any accidental use
of SNAP will produce no change.
■ Each active box side is snapped independently to the grid.
■ Each active vertex of a path is snapped independently to the grid.
■ Active cells are snapped so that their reference points (0,0) are on
the grid.
■ Active text is snapped so that its reference point is on the grid.
■ Before snapping, a backup of the drawing is made so that you can
restore the drawing if you make an error.
Important: SNAP is used to precisely grid a drawing. It normally is used
to eliminate small errors in placement. It however can be dangerous if
you make the snap grid too large. It can cause boxes and paths to be
crushed if the nearest grid point turns out to be the same for more
than one box side or vertex. Before any object is snapped, the hard
disk files DSSBKUP.BP5 and DSSBKUP.CL5 are updated. If you make a
mistake and incorrectly snap, you can use the UNDO command to restore
the drawing.
Step
STEP steps active objects into an Nx by Ny two-dimensional array.
■ Stepping distances in X and Y are determined by a 2-point coordinate
input. This may also be entered as a single PKE distance entry.
■ The original active objects are copied repeatedly just as though the
CPY command was used. The final copied objects remain active, while all
previous copies become inactive.
■ Nx and Ny are presently limited to 1024 max.
■ Stepping can be ended by pressing the SPACE bar.
Note: Care should be used with this command because you can easily fill
up your cell's object capacity if you don't watch your numbers. If this
happens press SPACE to end stepping.
Sys
SYS exits directly from Cell Mode to System Mode.
■ All active objects are made inactive.
■ The current cell is saved on the hard disk in the drawing directory.
Note: Any cells that may have been put on a RAM drive remain known to
LASI when you go to System Mode. You lose these only when you QUIT.
Text
TEXT generates text objects.
The command first asks for a Text Reference Point. The command will then
work in two ways:
■ If the new reference point is exactly ON the reference point of any old
text and the layer of the old text is OPEN, the old text object will be
erased and its text string will appear in the input box at the bottom
of the display. You can modify the text string as you wish. Any new
text will have the layer, size and orientation of the old text.
■ If the reference point is not on old text, new text will be generated.
The text character string may be up to 40 characters terminated by ENTER.
The string of text should appear in the drawing made from polygons. The
default layer and size of the characters will be shown at the bottom of
the display when the TEXT command is resident. These may be set using the
TLYR and TSIZ commands. The CLYR and CWSZ commands may be used to change
the text layer and size after the text is made.
Text Properties:
■ Text is always left justified and appears on a single line. There is no
text editor, so you must delete and rewrite any text.
■ You can make the text active using the GET, TGET or FGET commands.
■ You may copy, rotate, flip and move the text using the CPY, ROT, FLP
and the several types of move commands.
■ Text size will always be in integral multiples of 15 basic units. This
is to prevent distortion of the characters.
■ A text object is seen by LASI as a single point, the reference point,
and behaves just like a one-vertex path object, except that it is not
automatically deleted by SORT and DEL commands.
■ The T key or "T" button toggles the reference point between visible
(a small diamond, same color as text) and invisible. A intensified "T"
displayed in the upper right of the screen indicates that reference
points are visible.
Hint: To make text characters that are to appear permanently on any IC
masks, first make text of the appropriate size and then SMSH the text.
Since any characters must have a width that will reproduce on the
masks, you will first have to give the smashed poly some width with the
CWSZ command, and then modify the paths using the MOV, CUT, JOIN, etc.
commands to make the characters look better.
Read the Text Generation help category for more information.
tGet
TGET (text get) makes text active.
■ This works like GET or FGET, but operates only on text.
■ The layer must be viewed and opened.
tPut
TPUT (text put) makes text inactive.
■ This works like PUT or FPUT, but operates only on text.
■ The layer must be viewed.
tlcIn
tlcOut
TLCIN and TLCOUT are commands that call the TLCIN.EXE and TLCOUT.EXE
programs which convert internal cell data TO and FROM transportable (TLC)
format. "In" means convert TLC files FROM some source TO internal form in
your present drawing. "Out" means convert FROM internal form in your
present drawing TO some destination in TLC format.
With either command, the default source or destination is the last source
or destination path that you entered. Any acceptable drive or path may be
entered.
If you want to refer to TLC files in the current drawing directory leave
the source or destination blank. It will default to "." the DOS name for
the current directory.
You may specify up to 10 cellnames separated by spaces.
TLCOUT without any cellname(s) dumps ALL drawing cells as TLC files along
with the CELLS.REF file to the destination.
TLCIN without any cellname(s) retrieves ALL cells by reading the
CELLS.REF file at the source and translating TLC files into internal file
form (BP5 & CL5 files).
These commands have considerable power since you can also specify the
name of any system device as the source or destination. You can also give
a path as part the disk specification, so that cell files can be TAKEN
FROM or SENT TO other drives, paths or devices other than your drawing
directory.
Unless you are familiar with the use of DOS paths and remember just where
you put things, you can get into trouble this way by mixing up the cells
in different drawings.
Note: These commands really only run TLCIN.EXE or TLCOUT.EXE as a child
process from LASI. It is possible that you might run out of memory, and
the program will return a "Not Available" or other error message. If
this happens, you must run TLCIN.EXE or TLCOUT.EXE alone in memory.
Read the TLC Conversion help category for instructions on running the
TLC converters.
tLyr
TLYR (text layer) sets the default layer of text to be added.
■ If the value entered is not 1 through 64, the layer will be reasked.
■ If the Layer Table is on, click the layer button to set the text layer.
Read CLYR.
tSiz
TSIZ (text size) sets the default size of text to be added.
■ The size will be adjusted so that it is a integer multiple of 15 basic
units.
Read CWSZ.
uDup
UDUP (unduplicate) removes duplicate objects in a cell.
■ Boxes are removed if the layers and sides coincide exactly.
■ Boxes are removed if TWO or MORE sides coincide.
■ Paths or poly are removed if they have the same layer and all vertices
coincide in the same order.
■ Sequential vertices with the same coordinates are deleted.
■ Cells that have the same name, position and orientation are removed.
Undo
UNDO aborts the current Cell Mode cell.
■ This command will restore either the original cell that existed when
the mode was entered or the cell as it was when the last SORT, DEL,
SNAP or SMSH command was done.
■ Answering anything other than "c", "s" or "d" to the "Restore ..."
question cancels the UNDO command.
Read the SORT, DEL, SNAP and SMSH topics.
View
VIEW sets the layers that will be drawn on the display.
■ Boxes, paths and text that are not viewed are blocked from the GET,
FGET, WMOV, QMOV, PBEG and PEND commands.
■ Any active boxes or vertices will be drawn as bright white line
segments or as bright white vertex marks regardless of the VIEW
setting. This allows you to see where any active object are located,
which still will be affected by MOV, CPY, ROT, FLP or DEL commands.
■ Each cell rank may have different VIEW parameters.
VIEW works differently depending on whether the Layer Table is on or off.
Layer Table OFF:
VIEW accepts layer inputs that can be single layer numbers in any
order, or a dash (-) can be used to indicate all inclusive layers
between the end layers. A dash alone will give all layers from 1 to 64.
Layer Table ON:
Individual layers can be opened or closed by clicking the mouse on the
layer button (defined in FORM.DBD). The button brightens if on.
Note: CTRL-ENTER toggles the Layer Table on and off.
Read OPEN.
vStp
VSTP (vertex step) steps an active vertex along a path or poly.
■ The must be only one path (or poly) with one vertex active or the
command will not operate.
■ Each time the VSTP button is clicked the active vertex moves one
segment.
■ The active vertex normally moves forward in the path, however, if the
ALT key is pressed while the button is clicked, the vertex moves
backwards.
■ The active vertex stops at the beginning or end of the path, depending
on the direction.
This is a handy command. It can be used to determine the order of a path
vertices, but can also be used to make vertices active (for moving or
deleting) that are coincident with other vertices on the same path.
Hint: To step from beginning to end of a path, first use PBEG. To step
from end to beginning, use PEND first.
Wdth
WDTH sets the default width of paths to be added.
■ If a pathwidth is entered that is unacceptable, then the prompt will be
repeated with the default value in white box.
■ A width of 0 is acceptable. This produces paths of zero width or
polygons (poly).
■ The text size will be adjusted so that it is a integer multiple of 15
basic units.
Important: Paths with a POSITIVE width are drawn with their ends INLINE
with their end vertices, while paths with NEGATIVE widths are drawn
with their ends EXTENDED out half the width from the vertices.
EXTENDED paths should be used if the layout is to be converted to CIF.
If conversion will be to GDS either can be used.
Read CWSZ.
wGet
WGET (window get) is a combination of GET and CGET.
■ Cells, boxes, paths and text are affected the same way as those
commands.
WGET is useful if you are MOVing large sections of a drawing because you
can see just which objects are active before the operation. WGET makes
single sides of boxes and single vertices of paths active, which are then
pulled with active cells when MOVing is done.
Read AGET.
wGrd
WGRD (working grid) steps through the list of working grids.
■ The working grids should have been entered using the SET command.
■ The present working grid will be shown at the bottom of the screen.
■ Each cell rank may have a different working grid.
Note: WGRD when assigned to a function key accepts a numerical argument.
For example, a parameter in the FORM.DBD file "fkey=wgrd,10" assigns a
function key so that when the key is pressed the working grid is set to
10 physical units. However, if "fkey=wgrd" is the parameter, you will
be prompted for a working grid to be set.
Read SET and the General Information/Form File topic.
wMov
WMOV (window move) moves boxes, paths and cells.
■ The sides of boxes are moved if they are ENCLOSED by the rectangular
cursor window.
■ Text and vertices of paths move if they intersect the cursor window.
■ Cells are also moved, but only if the cursor window completely encloses
the cell's area. The cell may be drawn fully or be in outline.
■ The first two coordinate points form the cursor window.
■ The next two coordinate points determine the distance to be moved.
■ Box and path layers must be viewed and opened.
■ The move part of this command accepts a single PKE distance entry.
WMOV is useful for stretching large sections of drawings orthogonally,
for selectively doing box side movements, and for quickly doing small
vertex movements.
Xpnd
XPND expands the width of the drawing window.
■ The new window width is expanded by a factor (2 or 100%).
■ If you expand with the ALT key down, the window width is expanded by a
smaller factor (10%).
■ The display is redrawn.
Continuously XPNDing will eventually cause the window to expand to the
maximum size permitted or the whole "universe".
Read DRAW and the General Information/Universe topic.
Zoom
ZOOM reduces the drawing window size.
■ The new drawing window will be the best fit of the rectangular cursor
window.
■ The display is redrawn with the new drawing window.
■ ZOOM works over a 1000:1 range.
Hint: To ZOOM to a minimum window at a certain position, click the mouse
on that same position twice. This will zoom to the default minimum
window size centered at the cursor position.
Read DRAW.
Text Generation
Introduction
Text is generated by LASI version 5.1 by storing strings of ASCII
characters as though they were a type of path. A reference point is
stored as the first vertex, and then subsequent vertices contain up to 8
ASCII character bytes. When a string of text is drawn, it is expanded
much like a path, except that the characters are drawn in sequence from
predefined polygon patterns. A string of text can be thought of as a
single path segment, where the character size is equal to the path width
and the length is determined by the number of characters.
Each character is defined in the Text Font File. (TFF.DBD and TFF2.DBD
are the generic files supplied with the system.) This file may have any
name, but this name must be installed the FORM.DBD file using the "font="
parameter. Otherwise the default "TFF.DBD" is assumed. Read the General
Information/Form File topic.
A text font file is a binary file which contains a single record of 128
bytes for each of 96 characters. The characters may be drawn and modified
using LASI itself. This file is loaded permanently into memory when LASI
is started, so that text drawing can be done without slow disk access.
When entering text, a position is requested and the size and layer are
taken from the current text size and text layer default settings. The
text string is then simply typed in and terminated by ENTER. Like paths,
text layer, size, orientation and position can be changed using the same
commands that are used for paths.
The Text Font File
A text font file is ninety-six 128 byte records long. Each record
corresponds to an ASCII character starting at decimal 32 (space) and
ending at decimal 127 (delta). When LASI draws a character, the correct
record is found and the information is used to draw polygons in the
drawing.
The records may be randomly written using the MAKETFF.EXE program by
giving the name of the cell which contains the character drawing and then
simply typing the desired character key.
The vertices of the path pattern are written in a single byte of a record
in the form of the X-coordinate as the upper 4 bits and the Y-coordinate
as the lower 4 bits (nibbles). The coordinates may then be only the
numbers 0-15. The coordinate combination (15,15) is however prohibited
because it is used to indicate the end of a path.
A record therefore contains vertex coordinate bytes from 0-254, with 255
decimal (or FF in hex) bytes marking the end of a path. The remaining
bytes in a record are always filled with FF bytes to prevent further
paths being made as the record is read.
The maximum number of vertices that a record can hold is dependent on the
number of independent paths, but can be determined from:
total no. vertices = 128 - total no. paths
There can be any character drawing in the font pattern corresponding to a
given typed character. In fact, different text font files (with different
names) can be kept for different uses, and they can be conveniently
"turned on" by naming them in the "font=" parameter of the form file.
The Character Field
Characters start as little cells containing a drawing of a character. The
data format of the character drawing is quite different from a cell. A
character is drawn as a rank 1 cell using paths (0 width) on a 16x16
(0-15) field of basic drawing units. The paths may be on any layer. The
lower left corner of the field is position 0,0. The vertices of the paths
fall on the basic unit grid points. The vertices may be on any grid point
except 15,15. The cell can contain boxes that can be used as drawing aids
but will be ignored when the character is installed. For proportional
character spacing to work correctly, the character drawing should be left
justified.
≡≡23
15
. . . . . . . . . . . . . . . x 15 (15,15 not used)
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . _ . . . . . . . . . .
. . . . / . \ . . . . . . . . .
. . . / . . . \ . . . . . . . .
. . / . . . . . \ . . . . . . .
. / . . . . . . . \ . . . . . .
/ . . . . . . . . . \ . . . . . ^
| _ _ _ _ _ _ _ _ _ | . . . . . |
| . . . . . . . . . | . . . . . Y
| . . . . . . . . . | . . . . .
. . . . . . . . . . . . . . . .
(origin) 0 . . . . . . . . . . . . . . . .
0
X -->
Character Drawing Field in basic units (Letter A Shown)
Once a character cell is drawn, the program MAKETFF.EXE is used to
install the character in the text font file.
Note: The CHARS.ZIP file that should have been included with LASI 5.1
contains TLC files of all the characters in TFF.DBD and TFF2.DBD.
Usefulness of Text
Text is usually used to mark your drawings with information such as the
names of cells or component names and values. Text will be translated
with the other drawing data into text in other drawing systems.
Text may also be used as a pattern for putting writing on IC masks by
smashing the text using the SMSH command. The characters in the text font
file TFF2.DBD have been designed to smash into closed polygons that can
be reproduced by most mask generators. The characters in font file
TFF.DBD smash into open polygons that must be given width (with the cWSz
command) to be reproducible.
Text objects have a very useful property. Text can be considered as a
NAME with a LOCATION. You can therefore use text to mark connection
points to cells or subassemblies. You can then search for those points by
NAME and obtain a physical location on a drawing. This can be used to do
automatic cell placement and interconnection. This means that you can do
actual layout from wiring lists used by SPICE type programs.
Inversely, you can also write programs that locate NODES by POSITION in
LASI layouts or schematic drawings and associate TEXT with the NODE. You
can therefore write wiring lists for SPICE directly from drawings that
contain NODE NAMES and DEVICE NAMES written ON the drawing. The utility
program LASICKT.EXE works this way.
TLC Conversion
Introduction
TLC (Transportable LASI Cells) is a form of LASI cell data that is used
for drawing cell data storage and interchange. TLC files are ASCII
sequential files written in a well documented form. The information in a
TLC file is "line oriented", that is, you can write TLC with a text
editor and you can read it in a simple line input procedure. This makes
TLC files easily readable by programming languages including BASIC and C.
It also makes them very tolerant to catastrophic errors since data can be
fairly easily recovered or repaired.
TLC is convenient for writing special programs to be used with LASI such
as drawing transformation utilities or translators from other drawing
systems. (CIF2TLC.EXE, FLATTLC.EXE and GDS2TLC.EXE are examples.)
Each TLC file contains the information needed to construct a single cell.
The file contains information on the boxes, paths, text and cells in a
cell. It does not contain information on how to make any cells that may
be used within a cell. To build a complete drawing you need a COMPLETE
set of TLC files.
By definition, cell files in TLC are called EXTERNAL files, while cell
files used by LASI directly (".BP5" and ".CL5" extension) are called
INTERNAL files. TLC files always have the extension ".TLC". Internal
files are designed for the computers convenience, while external files
are designed for human convenience.
The program TLCIN.EXE converts external TLC files to internal BP5 and CL5
files, and the program TLCOUT.EXE converts internal BP5 and CL5 files to
external TLC files.
Using TLC is the ONLY WAY that cells can be installed in a LASI drawing
from an external source. This is because internal files use a pointer
reference to cells. This pointer is the position in the CELLS5.DBD file
of a given cell's basic information, which cannot be changed without
changing all cell references. TLCIN and TLCOUT take referencing into
account and adjust accordingly.
Since each cell has its own TLC file, and a TLC file may not really
contain all the information to construct a cell if it has lesser cells
within it, the TLC files for the lesser cells will have to be present for
conversion to internal form using TLCIN. When converting to external
form, the TLCOUT is smart enough to make the TLC files of any lesser
cells automatically.
When conversion from external to internal is being done, the lesser cells
will also be made in internal form if they are not already present in the
drawing cell collection. You may optionally replace any cells that are
already there with new ones.
Since TLC produces a set of files that construct a drawing, TLC files may
be conveniently "zipped" together into a "package" using PKZIP or similar
compressor. The ZIP files may be used as drawing archives, or they may be
sent by floppy disk or modem to other locations to share drawings between
LASI users.
Conversion Errors
It is possible that files may be missing, incorrect, or there may not be
enough memory when converting. TLCIN and TLCOUT will try to construct a
drawing as best as possible by making a TOKEN cell. A token cell is a
cell containing only the name of the cell enclosed in double angle
brackets ("<<name>>"), as text on layer 64. The rank of a token cell will
always be 1, so that it will always appear in other cells. If a token
cell is made, TLC will indicate the error, and continue as well as it
can.
Since it has rank 1, the token cell will contain no other cells. However,
if the error is corrected, and TLCIN or TLCOUT is used to overwrite the
token cell, normal cell nesting will be constructed. The token cell may
be thought of as a placeholder for the missing cell where it is used in
other cells. TLCIN or TLCOUT will replace the token cell with the actual
cell in the drawing cell collection, once the correct information is
available to make the actual cell.
Pooled Cells
When converting internal files to TLC files, TLCOUT will look for an
ATTACHED cell that may be used in a drawing in the POOL directory as it
is listed in the FORM.DBD file. If it doesn't find it, it will produce a
token TLC file consisting of the name of the cell in text. It will not
look for an attached cell in the drawing directory.
When converting from TLC files, TLCIN will put ALL cells in the DRAWING
directory since it has no knowledge (nor should it) of any cells that may
have come from a pool. Keep this in mind if you are converting into a
drawing; any pooled cells may get replaced.
Conversion Options
TLCOUT has two conversion options:
■ Convert ALL Cells to TLC
ALL Cells are converted from the source to the destination. This is the
standard drawing (archive) dump to TLC files.
■ Convert NAMED Cells to TLC
NAMED cells are converted to TLC files from the source to the
destination. Lesser cells that are needed to construct a cell of
greater rank will be optionally converted.
TLCIN has two conversion options:
■ Convert ALL Cells from TLC
ALL cells are converted to internal files. This requires that the
CELLS.REF file exist at the source. The names of all the cells at the
source are simply read from the CELLS.REF file and are converted as if
they had been named individually. If the CELLS.REF file is missing at
the source, then NAMED conversion must be used.
■ Convert NAMED Cells from TLC
NAMED cells are converted to internal files. If not already present,
the named cell is added to the CELLS5.DBD file at the destination. If
lesser cells are needed they are also converted from source TLC files
to internal files at the destination. If the lesser cells are not
present at the destination they will be converted automatically. If the
lesser cells may already be at the destination, you will have the
option to replace them with new ones. Therefore, to fully reconstruct a
named cell from TLC, all lesser cells must be present either in the
source or destination cell collections in TLC or internal form.
Notes:
1. If the CELLS5.DBD file is not present at the destination, then one
will be created and a message will be flashed.
2. To convert a complete layout drawing from TLC using TLCIN, you start
with a blank directory, and use the CELLS.REF file to convert ALL
files, or alternately NAME the main drawing cell to be converted if
you want only some cells in the CELLS.REF file. The TLCIN program then
reconstructs the whole drawing by making all lesser cells first, and
then the named main cell.
3. With all options the CONSTS5.DBD file of the source or destination
directory is left unaffected. If a drawing is reconstructed from TLC,
you must load your favorite CONSTS5.DBD file, or let LASI provide a
default one when it starts up.
Running TLCIN or TLCOUT
When running either TLC program you pass parameters as arguments on the
DOS command line. Arguments are separated by one or more spaces.
The FIRST argument is the SOURCE path, the disk drive name or "." for the
current directory.
The SECOND argument is the DESTINATION path, the disk drive name or "."
for the current directory.
The NEXT argument is needed only if the NAMED cell option is used, and is
a list of up to 10 cellnames to be converted.
Hint: Run the TLCIN or TLCOUT without any arguments to get HELP.
The CELLS.REF File
As TLCOUT makes it, the CELLS.REF file is just a copy of CELLS5.DBD.
You may change the CELLS.REF file to convert modified lists of cells into
internal form.
To remove a cell, delete the cell's name and the data line that follows
it in the CELLS.REF file.
To add a cell, insert the cell's name on a single line and then the
cell's rank on the next line. You don't need any additional data on the
second line.
The entry on the first line of the CELLS.REF file is the number of cells
in the file. If you add or delete cells, you should adjust this number.
When TLC converts to internal form using CELLS.REF, it counts either to
the number of cells it reads on the first line or to the end of the file,
whichever comes first.
TLC Format
TLC Cell files have a simple record structure. There are presently five
kinds of records: Header, Cell, Box, Path and Text.
The records for the objects in the cell are preceded by an "equals code"
consisting of two characters: the first is "=" and the second is "H",
"C", "B", "P" an "T" for Header, Cell, Box, Path or Text respectively.
Each equals code is terminated by a newline <nl>.
A TLC reading program then determines the type of object to be made from
the code and acts accordingly. If at some time in the future, other
objects are added to LASI, similar code will be used.
The TLC format is designed so that data can be resynchronized if an error
occurs. If an error is encountered during translation, it is possible
that one or two objects may be incorrectly reconstructed. The Header
record contains an object count. If this is compared to the actual number
of objects made, any miscounts may be detected by a TLC reading program.
When writing programs that read TLC files in C, read the file line by
line using fgets() and then parse the line using strtok(). Reading a line
at a time allows you to resynchronize if there is a data error.
All records, including the Header, may be written in any order in a file.
Records in Detail
Header Record: <nl>= carriage return + linefeed <sp>= space
1= =H<nl>
2= Name of Cell (DOS file name)<nl>
3= Version of LASI (literal)<nl>
4= Version of TLC (literal)<nl>
5= Basic Units per Physical Unit<nl>
6= Name of Physical Unit (literal)<nl>
7= Date of Cell Conversion (literal)<nl>
8= Time of Cell Conversion (literal)<nl>
9= Rank of Cell<sp>
10= Left Outline Boundary in basic units<sp>
11= Bottom Boundary in basic units<sp>
12= Right Boundary in basic units<sp>
13= Top Boundary in basic units<nl>
14= Number of Boxes<sp>
15= Number of Paths<sp>
16= Number of Vertices<sp>
17= Number of Cells<nl>
Note: Versions must begin with a numeric character
Cell Record Entries:
1= =C<nl>
2= Name of Lesser Cell<nl>
3= Orientation (see below)<sp>
4= X Position in basic units<sp>
5= Y Position in basic units<sp>
6= reserved (presently zero)<nl>
Property Number: (0-15)
16 bit integer, all bits 0 except:
Bit 4,
0= draw cell fully
1= draw cell outline
Orientation:
Bit 3,
0= cell not flipped
1= cell is flipped in X before rotation
Bits 2 and 1,
0,0 = no rotation
0,1 = 90 deg rotation CCW
1,0 = 180 deg rotation CCW
1,1 = 270 deg rotation CCW
Box Record Entries:
1= =B<nl>
2= Layer of Box<sp>
3= X of Lower Left Corner in basic units<sp>
4= Y of Lower Left Corner in basic units<sp>
5= X of Upper Right Corner in basic units<sp>
6= Y of Upper Right Corner in basic units<nl>
Path/Poly Record Entries:
1= =P<nl>
2= Layer of Path/Poly<sp>
3= Width in basic units<sp>
4= No. of Vertices in path/poly<nl>
5= Vertices in basic units in the form:
X1<sp>Y1<sp>X2<sp>Y2<sp>X3<sp>Y3<sp>X4<sp>Y4<sp>X5<sp>Y5<nl>
.......Xn-1<sp>Yn-1<sp>Xn<sp>Yn<nl>
(Groups of 5 coordinates separated by <sp> ended by <nl>,
always with <nl> after Last Coordinate Pair)
Text Record Entries:
1= =T<nl>
2= Layer of Text<sp>
3= Size in basic units<sp>
4= No. of Vertices used by text (includes Ref Point)<sp>
5= Orientation 0-7 (same as cells)<nl>
6= X Ref Point in basic units<sp>
7= Y Ref Point in basic units<nl>
8= ASCII character text string<nl> (u/l case, up to 32 characters)
System Contents
LASI System Files
!README.TXT Installation instructions for network version
LASI.EXE LASI boot program
LASI587.EXE Main drawing program for coprocessor
LASI5A.EXE Main drawing program without coprocessor
LASIDRC.EXE LASI design rule checker
LASICKT.EXE LASI SPICE code compiler
LHI.EXE LASI help and information reader
PGLPLOT.EXE Hewlett-Packard HP-GL plotter utility
PRNPLOT.EXE Multiple format plotter utility
MAKETFF.EXE Text font file maker utility
MANUAL.EXE Manual printer utility
NETCOMP.EXE Network list compare utility
TLCIN.EXE Transportable cell file "in" converter
TLCOUT.EXE Transportable cell file "out" converter
FLATTLC.EXE TLC file flattening utility
TLC2GDS.EXE TLC to Calma Stream (GDSII) converter
GDS2TLC.EXE GDSII to TLC converter
TLC2CIF.EXE TLC format to CIF format converter
CIF2TLC.EXE CIF format to TLC format converter
DXF2TLC.EXE AutoCAD drawing extractor
TILT.EXE TLC to TLC 3-D view converter
INSTALL.EXE Install program for floppy disk version
FORPRFIT.EXE LASI for profit program
FEEDBACK.EXE User response program
ESCHCPY.COM Screen hardcopy for ESC/P (Epson type) printers
PCLHCPY.COM Screen hardcopy for LaserJet/DeskJet (H-P) printers
PCXHCPY.COM Screen hardcopy in PCX format.
VESATEST.COM VESA video checker
LASISAVR.COM Free screen saver (type lasisavr /? for info)
LASI51.LHI Main LASI help and information text file
LASIDRC.LHI LASIDRC help text file
LASICKT.LHI LASICKT help text file
PLOTTERS.LHI Plotting programs help text file
CNVRTGDS.LHI TLC2GDS and GDS2TLC help text file
CNVRTCIF.LHI CIF2TLC and TLC2CIF help text file
LASIDSS.LHI Data structure standard help text file
FORM.DBD Generic configuration file
TFF.DBD Generic text font file (line characters)
TFF2.DBD Generic text font file (solid characters)
TILT.C Educational source code
TUTOR.ZIP Tutorial files collection
CHARS.ZIP Text character cell collection
ICONS.ZIP LASI Windows icons